資源描述:
《VS2010窗口拆分StepbyStep》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、VS2010窗口拆分StepbyStep本文檔以一個實例,介紹VC窗口拆分的具體步驟和方法。這里,我們將一個單文檔窗口拆分為4個窗口。下面具體介紹編程的步驟。1、在VS2010下,創(chuàng)建一個單文檔工程,取名:WndSeprt注意:清除高級框架選項。88編譯、測試,系統(tǒng)顯示如下界面。2、如圖,點擊類視圖標簽,打開主框架類(CMainFrame)的頭文件(MainFrm.h)。添加一個保護類型的變量,如下protected:…CSplitterWndm_wndSplitter;//hwpadd3、選擇主框架類(CMainFrame),在
2、窗口右邊點擊“重寫”,重載主框架類(CMainFrame)的OnCreateClient成員函數(shù)。8打開OnCreateClient成員函數(shù),添加如下代碼:BOOLret=m_wndSplitter.CreateStatic(this,2,2);//將原窗口拆分為2行2列,4個窗口if(!ret){TRACE("SplitCreateFailed...");returnret;}//計算窗口尺寸CRectrt;GetClientRect(&rt);CSizeczPane(rt.Width()/2,rt.Height()/2);
3、//4個窗口的大小相同,其高、寬為原窗口的一半//創(chuàng)建第一個窗口,窗口位于原窗口的第0行,第0列。窗口類型為:CListView——列表窗體pContext->m_pCurrentFrame=this;ret=m_wndSplitter.CreateView(80,0,RUNTIME_CLASS(CLanListView),czPane,pContext);if(!ret){TRACE("SplitCreateViewFailed(1)...");returnret;}//創(chuàng)建第二個窗口,窗口位于原窗口的第0行,第1列。窗口類
4、型為:CView——視圖窗體pContext->m_pCurrentFrame=this;ret=m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CLanView),czPane,pContext);if(!ret){TRACE("SplitCreateViewFailed(1)...");returnret;}//創(chuàng)建第三個窗口,窗口位于原窗口的第1行,第0列。窗口類型為:CTreeView——樹形窗體pContext->m_pCurrentFrame=this;ret=m_wndSpl
5、itter.CreateView(1,0,RUNTIME_CLASS(CLanTreeView),8czPane,pContext);if(!ret){TRACE("SplitCreateViewFailed(1)...");returnret;}//創(chuàng)建第四個窗口,窗口位于原窗口的第1行,第1列。窗口類型為:CFormView——窗體視圖pContext->m_pCurrentFrame=this;ret=m_wndSplitter.CreateView(1,1,RUNTIME_CLASS(CLanFormView),czP
6、ane,pContext);if(!ret){TRACE("SplitCreateViewFailed(1)...");returnret;}//初始化窗口m_wndSplitter.RecalcLayout();m_wndSplitter.SetActivePane(0,0);returnret;//returnCFrameWndEx::OnCreateClient(lpcs,pContext);84、如圖,選擇整個工程,右單擊,添加MFC類。在彈出的對話框中,輸入新建窗體類的類名和基類。這里,我們需要將原窗體拆分成4個窗口
7、。因此需要添加4個窗體類,其類名和基類分別為:類名基類CLanListViewCListViewCLanViewCViewCLanTreeViewCTreeViewCLanFormViewCFormView85、打開主框架類(CMainFrame)的源程序文件MainFrm.cpp,添加如下程序#include"LanListView.h"http://hwpadd#include"LanView.h"http://hwpadd#include"LanTreeView.h"http://hwpadd#include"LanFormView.h"http://hwpadd
8、6、編譯運行,界面如下。注意:拆分窗口時,每個窗口可以是不同的基類,可以是文本窗口、也可以是窗體窗口、樹形窗口等。只要在m_wndSplitter的成員函數(shù)CreateView中,RUNTIME_CLASS參數(shù)中指定不同類型的窗體即可。窗體的創(chuàng)建需