欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

VS2015 MFC属性页孙鑫笔记

发布时间:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的这篇文章主要介绍了 VS2015 MFC属性页孙鑫笔记 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

/************************创建属性页表单*********************************************/

一 创建单文档程序

二 切换到资源视图通过右键添加资源,添加三个DIALOG对话框,DIALOG选择 IDD_PROPPAGE_LARGE。修改ID:IDD_PROP1,IDD_PROP2,IDD_PROP3。为每个对话框增加设计所需控件

三 为资源IDD_PROP1,IDD_PROP2,IDD_PROP3增加对应的MFC类:CProp1,CProp2,CProp3,它们都继承自CPropertyPage

四 创建一个集成CProp1,CProp2,CProp3属性页的属性表单类CpropSheet,它继承自CPropertySheet,为它增加三个public 类型为CProp1,CProp2,CProp3,变量为:m_prop1,m_prop2,m_prop3三个成员变量。

     在CpropSheet的构造函数里通过调用成员函数AddPage(&m_prop1);AddPage(&m_prop2);AddPage(&m_prop3);

五 使用CpropSheet对象的DoModal()函数来显示属性页。至此出现的页面自动带有三个CButton类型的按钮,确定、取消、应用

 

/*************************创建向导对话框*******************************************/

步骤同属性表单。不同之处在于调用DoModal()之前,通过CPropertySheet对象调用成员函数:SetWizardMode();

CPropSheet propSheet(L"属性表单A"); //打开页面后的标题 propSheet.SetWizardMode();propSheet.DoModal();//备注 calss CPropSheet : public CPropertySheet

此出现的页面自动带有三个CButton类型的按钮,上一步、下一步、取消。三个页面都有,但是对于第一个页面,它不应该用到上一步,最后一个页面不能再有下一步了。既然这三个按钮都是CPorpertySheet的,查看MSDN,通过SetWizardButtons(DWORD dFlags)方法设置所需按钮。

dFlags:PSWIZB_BACK、PSWIZB_NEXT、PSWIZB_FINISH、PSWIZB_DISABLEDFINISH

要设置按钮,需要在属性页CPropertyPage中的OnSetActive()中进行修改。由于CPropertyPage是属于CPropertySheet的一个页面,因此他们之间存在父子关系。因此Page中,可以调用GetParent()获取父指针CWnd类型的,而我们需要操作的是CPropertySheet类型的,因此需要进行转换。

 

BOOL CProp1::OnSetActive() {//对于第一个页面,它只有下一步((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_NEXT); //当激活这个页面的时候,同样显示 “上一步” “下一步”“取消”//不同的是,“上一步”按钮灰色不可用return CPropertyPage::OnSetActive(); } BOOL CProp2::OnSetActive() { // 中间页面有上一步,和下一步按钮((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_BACK|PSWIZB_NEXT);return CPropertyPage::OnSetActive(); } BOOL CProp3::OnSetActive() {// 最后一个有上一步和完成按钮((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_BACK|PSWIZB_FINISH);return CPropertyPage::OnSetActive(); }

单击下一步按钮:在CProp1,CProp2增加OnWizardNext()虚函数....

 

转载于:https://www.cnblogs.com/zhou8744/p/10600080.html

总结

以上是生活随笔为你收集整理的VS2015 MFC属性页孙鑫笔记的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。