vs2010單文件中新增對話方塊並在對話方塊中新增屬性框(標籤框)
1.建立單文件Demo
在資源檢視Dialog中插入兩個Dialoge,Style設定為child,Border設定為chill。為兩個對話方塊分別新增類,基類為CPropertyPage,類名CP1,CP2。在P1的標頭檔案新增 #include "resource.h"
2.在類檢視中在Demo中新增類,基類為CPropertySheet,類名為CSheet。在Sheet.h標頭檔案中包含P1.h,P2.h。同時加入public:
CP1 m_p1;
CP2 m_p2;
在Sheet.cpp中,新增如下程式碼
3.在類檢視中在Demo中新增類,基類為CFormView,類名為CLeftView。LeftView.h中包含Sheet.h。新增public:
CSheet s;
在LeftView.cpp中包含MainFrm.h。對s初始化
同時新增如下程式碼
void CLeftView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: 在此新增專用程式碼和/或呼叫基類
CMainFrame* pMainFrame=(CMainFrame*)GetParentFrame();
s.Create(this,WS_CHILD|WS_VISIBLE|WS_EX_CONTROLPARENT);
s.SetWindowPos(NULL,0,0,400,800,SWP_NOSIZE|SWP_NOACTIVATE);
} //該程式碼是放置Page同時彈出屬性框
4.在MainFrm.h中包含LeftView.h。新增public:
CSplitterWnd Splitter;
在MainFrm.cpp中包含三個標頭檔案#include "DemoDoc.h"
#include "DemoView.h"
#include "LeftView.h"
對CMainFrame類中的OnCreatClient進行過載,新增如下程式碼
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
Splitter.CreateStatic(this,1,2);
Splitter.CreateView(0,0,RUNTIME_CLASS(CLeftView),CSize(400,150),pContext);
Splitter.CreateView(0,1,RUNTIME_CLASS(CDemoView),CSize(400,0),pContext);
SetActiveView((CDemoView*)Splitter.GetPane(0,1));
return true;
//這個程式碼是將單文件分割成兩部分
}
結果如下: