对不起, 因为代码很长并且不允许公布, 但我可以说明的是, 在一个非 MFC 对象中
Class object
{
public:
      Dlg   prompt;}
Dlg 是一个 CDialog 对象.然后在 object 的一个函数中
.....
Dlg.Create( IDD_DIALOG, NULL );
Dlg.ShowWindow( SW_SHOW );
.....
if( Dlg )
  Dlg.DestroyWindow();结果就是显示不出控件, 但如果是 Dlg.DoModel() 就可以正常显示! 谢谢!! 

解决方案 »

  1.   

    难道没有出现过类似的情况吗? 比如说使用 Progress, 以上使用对话矿也是为了进度显示.
      

  2.   

    请问你为这个对话框分过内存吗!
    你不信去看,一定是dlg  0x00000000;
    用指针吧!
    CYourClass* m_pDlg=new CYourClass;
    m_pDlg->ShwoWindow(SW_SHOW);
    ..
    delete m_pDlg;
    试试看!
      

  3.   

    只是 DoModal 就完全正常! 
      

  4.   

    解决了, 是需要调用 UpdateWindow