用VS2008 MFC做属性页思路
庭博网校原创,转载请指明出处
第一步:新建一个单文档的工程;
第二步:在资源的菜单中加入一个调用属性对话框的菜单,代码先不要写;
第三步:再在资源中插入三个对话框,目的是用它们做三个属性页。并设他们的Border thin;Style:Child;
这里caption的值就是成功运行后它们在属性页中的标签了。
第四步:将这三个对话框分别做成类的形式,关键技术点是这三个对话框类要继承于CPropertyPage类。
以上四步完成后,有人会问,这三个属性页放在哪个框架中呢?是不是还要加一个对话框类做CPropertySheet呢?
回答是不用做对话框了。但是必须在“类视图”中添加一个MFC的新类,并且这个新类要继承于CPropertyPage,这是又是一个关键技术点;
不需要在这个类中加入任何代码,呵呵。如何你一定要加代码,比如想改一下属性对话框的尺寸什么的,就把这个类重载一个OnInitDialog();在这里去修改属性对话框的窗口。
说到这里,有人会问:这个属性对话框究竟是多大呢?答案是:它以你做得三个对话框中的最大的那人为准。
页面何时加到属性框架中呢?这正是我要往下讲的:
打开资源文件中的menu菜单,为刚才加入的菜单编辑代码,对于单文档工程,菜单要选view类才行哦,说明菜单是为视图服务的。呵呵,原来,属性框架和属性页是在这个地方联系起来的哟!
典型代码:
void CmypropertyView::On32771() { // TODO: 在此添加命令处理程序代码 CMyPropSheet pt1(_T("属性对话框范例")); CMypro1 m_p1; CMypro2 m_p2; CMypro3 m_p3; pt1.AddPage(&m_p1); pt1.AddPage(&m_p2); pt1.AddPage(&m_p3); pt1.DoModal(); }
编译运行就可以了。
小结:1、先做三个属性页类并继承于CPropertyPage;
2、新建一个类并继承于CPropertySheet;
3、(1)和(2)在视图中发生关系。
|