1. 程式人生 > >vs2010單文件中新增對話方塊並在對話方塊中新增屬性框(標籤框)

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:

virtual void OnInitialUpdate();

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)
{

// TODO: 在此新增專用程式碼和/或呼叫基類
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;
//這個程式碼是將單文件分割成兩部分
}

結果如下: