现有一系统所属的模态对话框,如果要将其关闭,该怎么操作?  
   这种类型的对话框所用的类是什么,当关闭的时候应该发给这个对话框什么类型的消息,好像不能用DestroyWindow来关闭,而是用EndDlg,那么这个API又给对话框内部的过程发了什么消息呢?

解决方案 »

  1.   

    关闭对话框:
    其实,一般窗口的销毁可以用DestoryWindow(),对话框的销毁可以用EndDialiog().
    EndDialog(IDOK);
    DoModal()的返回值为IDOK,但不会执行用户定义的OnOK.
    只要发送WM_CLOSE消息,就会有响应的函数处理的。
    SendMessage(WM_CLOSE);
    PostMessage(WM_CLOSE);void CTestDialog::OnButton1() 
    {
    GetParent()->DestroyWindow();
    }
    窗口和对话框一起关
    PostMessage(WM_QUIT);
    SendMessage(WM_QUIT);//不行
    无模式对话框用DestroyWindow();
    用EndDialog
    你再打开原对话框就有问题
      

  2.   

    发送WM_SYSCOMMAND的SC_CLOSE消息也可
      

  3.   

    现在的问题是我还不能获取到对话框(属于其它进程)的句柄,而要知道句柄用FindWindows,但入口参数是须要知道对话框创建时所用的类的。
      真不知道系统模态对话框创建时用的是什么类?
      

  4.   

    用spy++查查看,一般dialog的都是TEXT("#32770"),一个奇怪的字符串.