网站ome系统怎么做,泸州房地产新闻,乐客vr加盟费用要多少,wordpress自定义短码程序源代码 效果#xff0c;如图#xff1a;1)创建一个MFC MDI应用程序#xff0c;Wizard设置如图#xff0c;然后点Finish2)CMyTreeView 在CMyTreeView中新增三个函数#xff0c;显示些示例数据virtual BOOL PreCreateWindow(CREATESTRUCT cs);//本例没有使用该函…程序源代码 效果如图1)创建一个MFC MDI应用程序Wizard设置如图然后点Finish2)CMyTreeView 在CMyTreeView中新增三个函数显示些示例数据virtual BOOL PreCreateWindow(CREATESTRUCT cs);//本例没有使用该函数afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);virtual void OnInitialUpdate(); 源代码如下int CMyTreeView::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CTreeView::OnCreate(lpCreateStruct) -1)return -1;CTreeCtrl m_treeCtrl GetTreeCtrl(); HTREEITEM hItem; hItem m_treeCtrl.InsertItem(node 1, TVI_ROOT);m_treeCtrl.Expand(hItem, TVE_EXPAND);hItem m_treeCtrl.InsertItem(node 2, TVI_ROOT);m_treeCtrl.Expand(hItem, TVE_EXPAND);hItem m_treeCtrl.InsertItem(node 3, hItem);m_treeCtrl.Expand(hItem, TVE_EXPAND);return 0;}void CMyTreeView::OnInitialUpdate(){CTreeView::OnInitialUpdate();CTreeCtrl m_treeCtrl GetTreeCtrl(); m_treeCtrl.ModifyStyle(0, WS_VISIBLE | WS_TABSTOP | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES | TVS_DISABLEDRAGDROP); }CMyListView在CMyListView中新增三个函数显示些示例数据virtual BOOL PreCreateWindow(CREATESTRUCT cs);//本例没有使用该函数afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);virtual void OnInitialUpdate(); 源代码如下int CMyListView::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CListView::OnCreate(lpCreateStruct) -1)return -1;// TODO: Add your specialized creation code hereCListCtrl m_list GetListCtrl();CString sTmp asdf;//示例数据代码中最好封装成函数int iPos m_list.GetItemCount();m_list.InsertItem(iPos, sTmp);m_list.SetItemText(iPos, 1, sTmpsTmp);return 0;}void CMyListView::OnInitialUpdate(){CListView::OnInitialUpdate();CListCtrl listCtrl GetListCtrl();LONG lStyle;lStyle GetWindowLong(listCtrl.m_hWnd, GWL_STYLE); lStyle ~LVS_TYPEMASK; lStyle | LVS_REPORT ; SetWindowLong(listCtrl.m_hWnd, GWL_STYLE, lStyle); DWORD dwStyle listCtrl.GetExtendedStyle();dwStyle | LVS_EX_FULLROWSELECT | TVS_SHOWSELALWAYS | LVS_EX_FULLROWSELECT;listCtrl.SetExtendedStyle(dwStyle);CRect rect;GetClientRect(rect);listCtrl.InsertColumn( 0, 信息, LVCFMT_CENTER, rect.Width()/2 );listCtrl.InsertColumn( 1, 信息2, LVCFMT_CENTER, rect.Width()/2 );}CFrmChildTreeFrmChildTree.hclass CFrmChildTree : public CMDIChildWnd#include MyTreeView.h声明一个CMyTreeView数据成员CMyTreeView m_FrmChildTree;FrmChildTree.cppint CFrmChildTree::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CMDIChildWnd::OnCreate(lpCreateStruct) -1)return -1;// TODO: Add your specialized creation code hereif (!m_FrmChildTree.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL)) { TRACE0(Failed to create view window\n); return -1; }return 0;}CFrmChildListFrmChildList.hclass CFrmChildList : public CMDIChildWndwith Splitter#include MyListView.h最好声明一个MyListView数据成员,用于记录Spliter创建的View以便以后使用CMyListView* m_pMyListView;FrmChildList.cppBOOL CFrmChildList::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext){ //return m_wndSplitter.Create(this, // 2, 2, // TODO: adjust the number of rows, columns // CSize(10, 10), // TODO: adjust the minimum pane size // pContext);// TODO: Add your specialized code here and/or call the base class CRect rect; GetClientRect(rect); if (!m_wndSplitter.CreateStatic(this, 2, 1)) { return FALSE; } m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CMyListView),CSize(rect.Width(),rect.Height()/5 ),pContext);m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CMyListView),CSize(rect.Width(),rect.Height()/5 ),pContext); m_pMyListView (CMyListView*)m_wndSplitter.GetPane(0, 0); //... ... return CMDIChildWnd::OnCreateClient(lpcs, pContext);}3)修改menuIDR_MFC_MDI_BUT_NO_TYPE增加ID_FILE_TREE ID_FILE_LIST 两个菜单分别为Tree 和 List在app中响应app.h#include FrmChildList.h#include FrmChildTree.hCMDIChildWnd* m_pFrmChildList; //两个CMDIChildWnd对象 CMDIChildWnd* m_pFrmChildTree;afx_msg void OnFileTree();afx_msg void OnFileList();private: void ActiveChildWnd(CMDIChildWnd* m_pMDIChildWnd); app.cppBOOL CMFC_MDI_BUT_NO_DOCApp::InitInstance(){ ... ...if( NULL m_pFrmChildList ) { m_pFrmChildList pFrame-CreateNewChild( RUNTIME_CLASS(CFrmChildList), IDR_MFC_MDI_BUT_NO_TYPE, 0, 0); }... ...}void CMFC_MDI_BUT_NO_DOCApp::OnFileNew() //屏蔽该代码删除对应的New菜单{ //CMainFrame* pFrame STATIC_DOWNCAST(CMainFrame, m_pMainWnd); create a new MDI child window //pFrame-CreateNewChild( //RUNTIME_CLASS(CChildFrame), IDR_MFC_MDI_BUT_NO_TYPE, m_hMDIMenu, m_hMDIAccel);}void CMFC_MDI_BUT_NO_DOCApp::OnFileTree(){// TODO: Add your command handler code hereCMainFrame* pFrame STATIC_DOWNCAST(CMainFrame, m_pMainWnd); if( NULL m_pFrmChildTree ) { m_pFrmChildTree pFrame-CreateNewChild( RUNTIME_CLASS(CFrmChildTree), IDR_MFC_MDI_BUT_NO_TYPE, 0, 0); } else { ActiveChildWnd( m_pFrmChildTree ); } m_pFrmChildTree-SetWindowTextA(Tree); }void CMFC_MDI_BUT_NO_DOCApp::OnFileList(){// TODO: Add your command handler code here]CMainFrame* pFrame STATIC_DOWNCAST(CMainFrame, m_pMainWnd); if( NULL m_pFrmChildList ) { m_pFrmChildList pFrame-CreateNewChild( RUNTIME_CLASS(CFrmChildList), IDR_MFC_MDI_BUT_NO_TYPE, 0, 0); } else { ActiveChildWnd( m_pFrmChildList ); } m_pFrmChildList-SetWindowTextA(List);}void CMFC_MDI_BUT_NO_DOCApp::ActiveChildWnd(CMDIChildWnd* m_pMDIChildWnd){ m_pMDIChildWnd-MDIActivate();}转载于:https://www.cnblogs.com/zkliuym/archive/2010/04/01/1702168.html