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

azurewater1000 2005-08-14 08:39:55
在界面的所有对话框中想使用同样的风格,如背景,图标,因此想从CDialog派生一个做为基类,所有对话框都从这个类派生。问题是,派生时改成基类的构造函数,不能传递正确的资源ID,因为基类已经指定了资源ID。请问如何正确实现?
...全文
201 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
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是父窗口的指针,这个和以前是一样的,呵呵

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧