处理窗口消息方面的问题,帮忙看看,谢谢!
处理窗口消息方面的问题,帮忙看看,谢谢!
在弄一个消息过程,就像ShowMessage(''); 这个内部函数处理的效果差不多。
意思就是说弹出msgbox框后,鼠标是不能响应底层窗口的。只能活动msgbox。
需求是这样:
如,打开计算器(可以说是某个线程吧)后,底层窗口(母体)消息处理后,母体已经失去(并非假死或卡死)响应了,计算器是活动区。 最后,计算器关掉后母体恢复活动。
如果我解释的不清楚的话,如同这种效果:
MessageBox(0,0,0,0);
与
MessageBox(Application.Handle,0,0,0);
希望帮忙解决一下这个问题。谢谢!
[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
var
h: HWND;
begin
Enabled := False;
WinExec('calc', SW_SHOW);
repeat
Sleep(100);
Application.ProcessMessages;
h := FindWindow('SciCalc', '计算器');
until h=0;
Enabled := True;
end;
[解决办法]
模式窗口显示 form.ShowModal