**
问题:
**我只要把界面最小化以后,就再也无法显示出来了,只在托盘上有显示个图标,但是右键又关闭不了也还原不出来,真是怪事了。我这个是登陆界面,请大家看看是什么原因,如何解决。
原因:
那是因为任务栏上的图标不是那个窗体的,是APPLICATION的。主窗体及用ShowModal显示的窗体最小化时都会将APPLICATION也最小化,这种情况下点任务栏图标能恢复。其它的用SHOW方法显示的窗体最小化时只会到桌面上。如果你想达到用任务栏图标的目的,可以截获窗体最小化的消息(WM_SYSCOMMAND, WPARAM=SC_MINIMIZE),执行Application.Minimize即可。
方法:
procedure TfmLogin.WMSysCommand(var Msg: TWMSysCommand);
begin
ShowMessage(IntToStr(Msg.CmdType));
//上面代码的作用是,显示message的cmdtype对应的int值
if (Msg.CmdType=SC_CLOSE ) then
begin
ShowMessage(' 你点击了右上角 关闭 按钮 ');
end ;
if (Msg.CmdType=SC_MINIMIZE ) then
begin
ShowMessage('你点击了右上角 最小化 按钮 ');
Application.Minimize;
end ;
if (Msg.CmdType=SC_MAXIMIZE ) then
begin
ShowMessage(' 你点击了右上角 最大化 按钮 ');
Application.Restore;
end ;
if (Msg.CmdType=SC_RESTORE ) then
begin
ShowMessage(' 你点击了右上角 层叠/还愿 按钮 ');
Application.Restore;
end ;
inherited; //加入此词句可让程序封锁消息后继续执行动作
end;
|