在界面的所有对话框中想使用同样的风格,如背景,图标,因此想从CDialog派生一个做为基类,所有对话框都从这个类派生。问题是,派生时改成基类的构造函数,不能传递正确的资源ID,因为基类已经指定了资源ID。请问如何正确实现?

解决方案 »

  1.   

    看了一下以前做的你可以在你的对话框类中,把那个{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是父窗口的指针,这个和以前是一样的,呵呵
      

  2.   

    http://community.csdn.net/Expert/topic/3951/3951436.xml?temp=.3005335