求助,关于MFC的属性表单的问题

如题所述

第一步:新建MFC工程,插入资源----属性页资源IDD_PROPPAGE(需要多少页,就插入多少属性页,这里我们需要三页)
第二步:为每一页属性页添加类(CProp1,CProp2,CProp3)
为某一个控件、对话框、属性页或者窗口添加类的意义目的是:
{
当我们利用MFC绘制好对话框、控件等的时候,这些个对话框、控件的绘制信息就会产生并被存储,
我们为相关对话框、控件添加类,就是利用这个绘制信息生成类,这个类就相当于对话框或者控件的
模板,我们可以利用这个类,生成新的与模板一样的对话框或控件。
}
第三步:利用Class Wizard创建一个新类,这个类派生自CPropertySheet,我们为新类取名为CProperSheet,这个新类
所生成的对象就是一个属性表单。
第四步:既然这个新类CProperSheet所生成的对象就是一个属性表单,那么它就就应该有成员属性页。所以我们应该为
CProperSheet添加代表属性页的成员变量。还要在CProperSheet的构造函数中初始化基类。代码如下:
class CProperSheet :
public CPropertySheet
{
private:
CProp1 m_page1;
CProp2 m_page2;
CProp3 m_page3;
public:
CProperSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL,
UINT iSelectPage = 0);
virtual ~CProperSheet();
};
第五步:第四步只是添加了成员变量,方便类管理,但并没有将属性页加入属性表单,要完成这个操作我们还必须在CProperSheet
的构造函数中实现。代码如下:
CProperSheet::CProperSheet(LPCTSTR pszCaption, CWnd* pParentWnd ,
UINT iSelectPage )
:CPropertySheet(pszCaption, pParentWnd,iSelectPage)
{
AddPage(&m_page1);//添加属性页一
AddPage(&m_page2);//添加属性页二
AddPage(&m_page3);//添加属性页三
}
第六步:整个属性表单类的制作已经完成,下面就可以开始生成属性表单对象了:
void CMFCApplication1Dlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
CProperSheet proSheet(_T("恭喜学会了属性表单"));
proSheet.DoModal();//创建模式对话框
}

我们都知道,当我们关闭模式对话框时,程序才会执行后面的代码。那么我们怎么判断是点击对话框中的那一个按钮来退出模式对话框的呢?
答案是DOModal是有返回值的。
温馨提示:内容为网友见解,仅供参考
无其他回答

怎样用MFC基于对话框的属性表单,属性页作为软件界面,一个属性表单包含多...
对话框做主框架。1,创建Dialog Based Appcation Exe with MFC wizard2,添加资源Large Property Page 一个,后按住CTRL点击它并拖动,重复三次这样就得到了三个Large Property Page 保持默认的ID。3,用Wizard 以PAGE3作为模板,生成我们的嵌套的CMyPage,它派生自CPropertyPage。4,CPropertyPage 类添加...

请教MFC中的属性表单和Tab 控件有什么不同
1、表单控件(早期版本的窗体控件):只能在工作表中添加和使用,并且只能通过设置控件格式或者指定宏来使用它。2、ActiveX控件:不仅可以在工作表中使用,还可以在用户窗体中使用,并且具备了众多的属性和事件,提供了更多的使用方式。

MFC程序表单乱码怎么办?
如果没有涉及其它外部数据、外部组件,那么多数可能是宽字节问题,少数可能是你代码使用不当造成截断等问题。建议你还是贴图贴代码来分析,尽量描述细节。

MFC有哪些基本类??分别代表什么意思
CProgressCtrl 通用进程指示器控件 afxcmn.h CPropertyPage 代表属性表单中的一页 afxdlgs.h CPropertyPageEx CPropertySheet 属性表,也叫做多选项卡对话框。一个属性表由一个CPropertySheet对象和几个CPropertyPage对象组成 afxdlgs.h CPropertySheetEx CPropExchange afxctl.h CPtrArray afxcoll.h CPtrList afxcoll.h CReBar af...

MFC界面字体怎么设置?
你可以点击对话框属性,在属性对话框General属性表单中的左下侧有一个"Font"按钮,点击这个按钮,接下来你就知道怎么做了、、、

MFC模态对话框怎么默认最大化弹出?
添加模态对话框初始化函数, 在其中添加如下语句:ShowWindow(SW_MAXIMIZE);这样初始化时就应该最大化显示了吧

vc怎么在属性表单上添加放大缩小框
MFC对话框允许放缩,就是资源编辑器里面,对话框属性,边界允许Resizing就可以了。如果需要对话框的放缩同时缩放里面的控件(包括属性页),就需要在对话框的OnSize消息响应函数中,通过MoveWindow一个一个的去移动控件(该函数包括了定制大小)。网上有些库,可以稍微简化一些代码,但实际上,都是根据对话框...

MFC属性页Timer如何停止
跟窗口没什么关系。 每个timer在set的时候都有个id, 你用那个id随便在那个函数里都可以同样地kill它, 用api就可以了, 这个东西用类里面包装的没意义

MFC程序设置指定坐标位置的文本,比如有程序A,我需要写个程序去填写程序...
不可去获取句柄啊 那我就不知道了 通过光标的位置获取到文本,好像是拦截 DrawText 之类GDI \/ DirectDraw 函数,重绘嘛,什么坐标重绘什么文本,当前鼠标在什么坐标,就判断出来了 可能不知道,模拟键盘鼠标的行不行 加上TAB切换下一个控件,剪贴板粘贴Ctrl+V进去 ...

vc++编的MFC ,关于ODBC数据库的操作,“查找一个记录”的代码编写。下面...
这是你界面设计的问题,不是技术问题。如果你界面上有导航按钮,就可以通过当前的查询到的主键进行判断,查询数据库中的上一条或者下一条啊。

相似回答
大家正在搜