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;
//这个代码是将单文档分割成两部分
}

结果如下:









猜你喜欢

转载自blog.csdn.net/qq_27931977/article/details/79560202