如何创建自定义的对话框模板基类

azurewater1000 2005-08-14 08:39:55
在界面的所有对话框中想使用同样的风格,如背景,图标,因此想从CDialog派生一个做为基类,所有对话框都从这个类派生。问题是,派生时改成基类的构造函数,不能传递正确的资源ID,因为基类已经指定了资源ID。请问如何正确实现?
...全文
177 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
POSONE 2005-08-14
http://community.csdn.net/Expert/topic/3951/3951436.xml?temp=.3005335
回复
handsomerun 2005-08-14
看了一下以前做的

你可以在你的对话框类中,把那个{EMUE =IDD_DIALOG1删掉,然后

不是构造函数中有这样的东西吗

dlg::dlg(CWnd* pParent /*=NULL*/)
: CDialog(dlg::IDD, pParent)

把这个dlg::IDD
删掉,自己再新建一个构造函数

你自己的构造函数里面有个LPCTSTR lpszTemplateName的参数,作为对话框的id传递进去,就是

dlg::dlg(LPCTSTR lpszTemplateName,CWnd* pParent /*=NULL*/)
:CDialog(lpszTemplateName, pParent)

这样你构造对话框类对象的时候,只要记得把资源代进去就可以了


比如这个dlg类是你派生对话框类

那么你以后在创建这个dlg类的时候可以

dlg aa(ID,Pf)

这个ID是你对话框的资源ID,Pf是父窗口的指针,这个和以前是一样的,呵呵
回复
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-08-14 08:39
社区公告
暂无公告