码迷,mamicode.com
首页 > 编程语言 > 详细

MFC属性表单的创建

时间:2014-12-07 16:14:48      阅读:435      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   使用   sp   on   

一个属性表单由一个或多个属性页组成。它有效地解决了大量信息无法在一个对话框上显示这一问题。

1、创建属性页

为了创建属性表单,首先需要创建属性页,后者对应的MFC类是CPropertyPage,该类生成的对象代表了属性表单中一个单独的属性页。

bubuko.com,布布扣

 

在资源编译器下添加3个属性页资源,并修改这三个属性页资源的ID及标题(Caption属性),属性页的标题就是最终在属性页上显示的选项卡的名称。有三种类型的属性页,如图:

bubuko.com,布布扣

说明:如果知道了属性页资源与对话框资源之间的属性区别,也可以在程序中先增加一个普通对话框资源,然后修改其属性,使其符合属性页资源的要求,然后把它当作属性页资源来使用。

 

为每一个属性页生成相应的属性页类,基类是CPropertyPage。

bubuko.com,布布扣

 

2、创建属性表单

为了创建一个属性表单,首先需要创建一个对象,接下来在此对象中为每一个属性页创建一个对象(CPropertyPage类型),并调用AddPage函数添加每一个属性页,然后调用DoModal函数显示一个模态属性表单,或调用Create函数创建一个非模态属性表单。

(1)创建一个基类为CPropertySheet的类CPropSheet。

bubuko.com,布布扣

 

(2)CPropSheet类头文件中为先前创建的三个属性页分别定义一个成员变量。注意包含相应头文件。

CProPage1 m_page1;
CProPage2 m_page2;
CProPage3 m_page3;

 

(3)添加属性页对象。

通常都是在属性表单的构造函数中添加属性页对象。属性表单有两个构造函数:

CPropSheet::CPropSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
    :CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{

}

CPropSheet::CPropSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
    :CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{

}

iSelectPage指定的是属性表单初始选择的属性页,默认值是第一个页面。因为属性表单有两个构造函数,在构造属性表单对象时,可任选其中一个构造函数。

CPropSheet::CPropSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
    :CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
    AddPage(&m_page1);
    AddPage(&m_page2);
    AddPage(&m_page3);
}

 

(4)显示属性表单。

bubuko.com,布布扣

CPropertySheet类是从CWnd类派生来的,而不是派生于CDialog类。但CPropertySheet对象与CDialog对象的操作方式是类似的。调用DoModal函数显示一个模态属性表单,或调用Create函数创建一个非模态属性表单。

bubuko.com,布布扣

 

如果要在初始化时就显示属性表单,需要在OnInitDialog函数中操作:

bubuko.com,布布扣

MFC属性表单的创建

标签:style   blog   http   io   ar   color   使用   sp   on   

原文地址:http://www.cnblogs.com/mengwang024/p/4149325.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!