请教如果截获ShowModal窗口的最小化消息(100分)

  • 主题发起人 主题发起人 yz
  • 开始时间 开始时间
Y

yz

Unregistered / Unconfirmed
GUEST, unregistred user!
当前有一个主窗体,然后当一个子窗体被ShowModal后,子窗体最小化的时候,主窗体不会同时最小化,现在想截获这个消息,在子窗体最小化的同时调用Application.Minimize <br><br>已知的方法可以在子窗体里截获WM_SysCommand消息来控制Application.Minimize,但是现在有很多的子窗体,每个都修改就比较麻烦了,想在主窗体或者系统的公用部分来处理 <br><br>不知道大家有没有什么建议,多谢
 
TFORM1=CLASS(TFORM)<br> &nbsp;private<br> &nbsp;....<br> &nbsp;...<br> &nbsp;public<br> &nbsp; &nbsp;procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;<br> &nbsp;end;<br><br>procedure TFMain.WMSysCommand(var Msg: TWMSysCommand);<br>begin<br> &nbsp;DefaultHandler(Msg);<br> &nbsp;if (Msg.CmdType=SC_MINIMIZE) then //说明最小化了<br> &nbsp; &nbsp;Application.Minimize<br>end;
 
type<br> &nbsp;TForm1 = class(TForm)<br> &nbsp; &nbsp;Button1: TButton;<br> &nbsp; &nbsp;Button2: TButton;<br> &nbsp; &nbsp;procedure FormCreate(Sender: TObject);<br> &nbsp; &nbsp;procedure Button1Click(Sender: TObject);<br> &nbsp; &nbsp;procedure Button2Click(Sender: TObject);<br> &nbsp;private<br> &nbsp; &nbsp;{ Private declarations }<br> &nbsp;public<br> &nbsp; &nbsp;{ Public declarations }<br> &nbsp; procedure My_Message(var Msg: TMsg; var Handled: Boolean);<br> &nbsp;end;<br><br>var<br> &nbsp;Form1: TForm1;<br><br>implementation<br><br>uses Unit2, Unit3;<br><br>{$R *.dfm}<br><br>procedure TForm1.FormCreate(Sender: TObject);<br>begin<br> &nbsp;Application.OnMessage:= My_Message;<br>end;<br><br>procedure TForm1.My_Message(var Msg: TMsg; var Handled: Boolean);<br>var<br> &nbsp;j:integer;<br>begin<br> &nbsp;Handled:=False;<br> &nbsp;if (Msg.message=45057) and (Msg.hwnd&lt;&gt;Self.Handle) then<br> &nbsp;begin<br> &nbsp; &nbsp;caption:=inttostr(Msg.message);<br> &nbsp;end;<br>end;<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> &nbsp;form2.ShowModal;<br>end;<br><br>procedure TForm1.Button2Click(Sender: TObject);<br>begin<br> &nbsp;form3.ShowModal;<br>end;<br>当form2或form3最小话后会触发这个消息。但不知道是否正确。
 
一批出口美国与欧州的的NIKE休闲运动鞋子,从外贸公司提货,质量决对保证,在大洋百洋里一般销售600左右的,在这绝对低价转卖,有多款鞋子,供图片进行选择,无意者请误打扰<br>可从网站http://www.omeng.com/nike直接查看鞋样图片,款式在不断更新中<br><br>也可加 &nbsp;QQ249247248
 
to znxia: 您说的第一个实际上就是我上面提到的解决办法,第二个有一个问题,的确是把整个都最小化了,但是点击任务栏的时候ShowModal出来的窗体被隐藏了,只有Alt+Tab才能切换出来<br><br>btw:抗议一下awfissnet的广告行为
 
后退
顶部