CControlUI* CDuiFrameWnd::CreateControl( LPCTSTR pstrClassName ) { CDuiString strXML; CDialogBuilder builder; if (_tcsicmp(pstrClassName, _T("Caption")) == 0) { strXML = _T("Caption.xml"); } else if (_tcsicmp(pstrClassName, _T("PlayPanel")) == 0) { strXML = _T("PlayPanel.xml"); } else if (_tcsicmp(pstrClassName, _T("Playlist")) == 0) { strXML = _T("Playlist.xml"); } else if (_tcsicmp(pstrClassName, _T("WndMediaDisplay")) == 0) { CWndUI *pUI = new CWndUI; HWND hWnd = CreateWindow(_T("#32770"), _T("WndMediaDisplay"), WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, m_PaintManager.GetPaintWindow(), (HMENU)0, NULL, NULL); pUI->Attach(hWnd); return pUI; } if (! strXML.IsEmpty()) { CControlUI* pUI = builder.Create(strXML.GetData(), NULL, NULL, &m_PaintManager, NULL); // 这里必须传入m_PaintManager,不然子XML不能使用默认滚动条等信息。 return pUI; } return NULL; }
CControlUI* CMainFrame::CreateControl( LPCTSTR pstrClass ) { if (_tcsicmp(pstrClass, _T("FriendList")) == 0) { return new CFriendsUI(m_PaintManager); } else if (_tcsicmp(pstrClass, _T("GroupList")) == 0) { return new CGroupsUI(m_PaintManager); } else if (_tcsicmp(pstrClass, _T("MicroBlog")) == 0) { return new CMicroBlogUI(m_PaintManager); } if (_tcsicmp(pstrClass, _T("Wnd")) == 0) { CWndUI *pUI = new CWndUI; HWND hWnd = CreateWindow(_T("BUTTON"), _T("win32"), WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 0, 0, 0, 0, m_PaintManager.GetPaintWindow(), NULL, NULL, NULL); pUI->Attach(hWnd); //// 上面用的是win32的按钮,下面这段用MFC的按钮 //CButton *pBtn = new CButton; // 记得释放内存 //pBtn->Create(_T("MFC"), WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, CRect(0, 0, 0, 0), CWnd::FromHandle(m_PaintManager.GetPaintWindow()), 0); //pUI->Attach(*pBtn); return pUI; } return NULL; }
CControlUI* CFrameWnd::CreateControl( LPCTSTR pstrClassName ) { if (_tcsicmp(pstrClassName, _T("Wnd")) == 0) { CWndUI *pUI = new CWndUI; HWND hWnd = CreateWindow(_T("BUTTON"), _T("win32"), WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 0, 0, 0, 0, m_PaintManager.GetPaintWindow(), NULL, NULL, NULL); pUI->Attach(hWnd); //// 上面用的是win32的按钮,下面这段用MFC的按钮 //CButton *pBtn = new CButton; // 记得释放内存 //pBtn->Create(_T("MFC"), WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, CRect(0, 0, 0, 0), CWnd::FromHandle(m_PaintManager.GetPaintWindow()), 0); //pUI->Attach(*pBtn); return pUI; } return NULL; }