主Dlg上弹出一个模态对话框,在模态对话框上加上一按钮,想实现:点击按钮,主dlg和模态对话框均最小化,最小化后右击任务栏“还原”,主Dlg和模态对话框又能恢复原来未最小化时的状态,我在模态对话框的最小化函数中加了如下代码:
AfxGetMainWnd()->PostMessage(WM_SYSCOMMAND,SC_MINIMIZE,0) ;却不能最小化,求高手指点,在线等

解决方案 »

  1.   

    GetParent()->ShowWindow(SW_MINIMIZE);
      

  2.   

    在ShowWindow最小化之前先调用
    GetParent()->EnableWindow(TRUE);
    当窗口都还原的时候在调用
    GetParent()->EnableWindow(FALSE);试试
      

  3.   

    应该是最小化后,再次单击最小化图标,会自动恢复,就像主DLG点了最小化再恢复一样的效果。
      

  4.   

    的确可以了
    当窗口都还原的时候在调用
    GetParent()->EnableWindow(FALSE);
    这个我不知道在模态对话框的哪调用,请教,谢谢。
      

  5.   

    又是这个问题,你建立的模态对话框是单线程的,换句话说,你DLG1建立DLG2,DLG2.DOMODEL()以后一定要等DLG2处理完以后DLG1再处理,本身模态对话框就屏蔽一些消息的,再加上单线程,肯定响应不了该消息。解决办法:楼主DLG2在另外条线程中建立即可
      

  6.   

    现在就一个问题:当主窗口从最小化还原时,模态对话框怎么获得这个事件???楼上说的DLG2.DOMODEL()以后一定要等DLG2处理完以后DLG1再处理,这个程序要的就是这个效果,串口消息,不能让后面的窗口进行操作。