在MDI应用程序中,我在CMainFrm类中创建了一个非模式对话框,也可以显示和隐藏.但是发现在状态栏多了一个程序,就是说本来一个程序变成两个了,那怎么样设置对话框的句柄.主要代码如下:
CDLG**** AA   //AA 是成员函数
在CMainFrm的构造函数中AA.Create(IDD_DLG_INFO,NULL);在CMainFrm的析构函数中,
AA.DestroyWindow();不知道怎么解决?

解决方案 »

  1.   

    状态栏多了一个程序,其实是你的非模式对话框窗口,由于它是POPUP型的,改成TOOLWINDOW就不在状态栏出现了
      

  2.   

    如果在VC内改还是不行,可以直接用记事本打开*.rc文件,修改EXSTYLE中的WS_EX_APPWINDOWWS_EX_TOOLWINDOW
    IDD_DLG1_DIALOG DIALOGEX 0, 0, 320, 200
    STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
    EXSTYLE WS_EX_APPWINDOW
      

  3.   

    原来LZ是把创建对话框加到框架类的构造函数里了。在执行框架类的构造函数时框架窗口还没有创建,所以无法指定对话框的父窗口。你把创建对话框的代码加到框架的OnCreate函数中,调用CFrameWnd::OnCreate之后就可以了。