我想做一个通用的对话框类,但是要动态生成对话框及上面的一些控件,我继承了CWnd类:
声明了:virtual BOOL Create();
BOOL CWndDialog::Create()
{
  CWnd wnd;
   wnd.CreateEx(WS_EX_TRANSPARENT, _T("DIALOG"), 0, WS_POPUP|WS_VISIBLE,  CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL,NULL ) ;
 return TRUE;
}
然后再其他的类里面调用create,这样是不是就可以生成一个对话框了?我的想法是不是太简单了!还需要其他的步骤吗?

解决方案 »

  1.   

    你还应该show出来
    ShowWindow(ID);
      

  2.   

    CWnd wnd;
    不用用局部变量;
    显示时还得showwindow
      

  3.   

    Dialog有自己的一套专用SDK可以使用,要动态创建的话可以使用
    CreateDialog/DialogBoxParam等函数
      

  4.   

    动态生成的对话框,不可能有id的吧。还有就是showwindow也不管用。还是根本就没有反应。
      

  5.   

    对话框相当于窗体,为什么不能用CreateEx呢?
      

  6.   

    从cwnd类派生的cwnddialog,哪儿有ID啊????BOOL CWndDialog::Create()
    {
      return CWnd::CreateEx(WS_EX_TRANSPARENT, _T("DIALOG"), 0, WS_POPUP|WS_VISIBLE,  CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL,NULL ) ;
    }
      

  7.   

    _T("DIALOG")是系统定义的窗口类吗?我可以直接用它?我不用在注册一个窗口类吗?如果这样的话,根本就不能显示。
      

  8.   

    CButton* m_pButton;
    m_pButton =new CButton;
    m_pButton->Create
    ("Button",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect
    (10,10,80,50),this,104)
    它的id是104?
    GetDlgItem(104)???