您的位置:首页 > 其它

vc学习历程(8)--创建属性页

2007-08-28 21:03 190 查看
一个属性表单由一个或多个属性页组成;

属性页对应的MFC类是CPropertyPage ,CPropertyPage类是从CDialog派生而来的,因此一个属性页窗口其实就是一个对话框窗口,所以可以在插入的资源中,插入属性页;

对话框与属性页的区别:
对话框资源 属性页资源

Style Popup Child

Border Dialog Frame Thin

System menu 选中 未选中

还有在More Styles中对话框是没有选中Disabled,而属性页是有选中的,这说明在属性页初始显示时是不能使用的,知道了这两种资源之间的区别,你可以在程序中先增加一个普通对话框资源,然后修改其属性,使其符合属性页的要求,然后把它当作属性页来使用;

然后为这个属性页建立一个类,父类为CPropertyPage类;

为了创建一个属性表单,首先需要创建一个CPropertySheet对象,并调用AddPage函数添加每一个属性页,然后调用DoModal函数显示一个摸态属性表单,或者调用Create函数创建一个非摸态属性表单;

代码如下:

CPropSheet::CPropSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
AddPage(&m_prop1);
AddPage(&m_prop2);
AddPage(&m_prop3);
}

CPropSheet::CPropSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
AddPage(&m_prop1);
AddPage(&m_prop2);
AddPage(&m_prop3);
}

在构造函数中,调用AddPage函数添加属性页;

然后在视图中添加函数,调用属性表单的对象;

void CMy20080808View::OnPropertysheet()
{
// TODO: Add your command handler code here
CPropSheet propSheet("属性表单");
propSheet.DoModal ();

}
如果显示的中文字体是乱码,可以通过修改属性页的PROPERTIES (属性)来修改语言和字体;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: