我在后面的主窗口消息处理中,处理了关闭或者隐藏前面的模式窗口,这样做可以吗?如果不可以,怎么才能实现通过消息传递关闭前面的模式窗口?!
多谢!!

解决方案 »

  1.   

    模式窗口不会阻塞其它窗口接收消息和处理消息的..function TCustomForm.ShowModal: Integer;
    ....
    begin
    .....
    //在SHOWMODAL的时候,程序都在执行这个REPEAT循环...
          repeat
            Application.HandleMessage;//这儿分派处理消息..
            if Application.FTerminate then ModalResult := mrCancel else
              if ModalResult <> 0 then CloseModal;
          until ModalResult <> 0;      Result := ModalResult;
          SendMessage(Handle, CM_DEACTIVATE, 0, 0);
          if GetActiveWindow <> Handle then ActiveWindow := 0;
    .....
    end;//--------------------------------------------
    同SHOW方式相比,SHOWMODAL主要只是自建一个消息循环而已.这个处理同主消息循环没有多
    大区别.
      

  2.   

    呵呵, halfdream(哈欠)说的不错