弹出窗口被主窗口遮挡(50)

  • 主题发起人 主题发起人 qbasten
  • 开始时间 开始时间
Q

qbasten

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么使用showmodal弹出的窗口(formstyle=fsNormal)有时候会被主窗口遮住,完全无法操作,以为程序是死机了,但使用ALT+Tab键切换一下,又可以把弹出窗口显示出来。
 
设置FORMSTYLE =FSSTAYONTOP就行了
 
设置FORMSTYLE =FSSTAYONTOP这个我知道,但这种方式不好,连showmessage都会被窗口遮住无法操作。
 
你的主窗口FormStyle 设置成为: fsMDIForm。我软件都是这样做的啊。
 
这个问题之前有人问过了,基本上没办法。
 
showmessage 写成为一个窗口试试
 
试了下,主窗口可以接收WM_SETCURSOR 消息,收到这个消息的时候,如果弹出的窗口<>nil,就把窗口BringToFront,再试试能接收其他消息不。
 
解决了。 protected procedure WndProc(var Message: TMessage); override;------------------------------------------------------------procedure TForm1.WndProc(var Message: TMessage);begin inherited; case Message.Msg of WM_SETCURSOR: if (not IsWindowEnabled(Handle)) and (Message.LParamHi=WM_LBUTTONDOWN) then begin try if Form2<>nil then Form2.BringToFront; except end; try if Form3<>nil then Form3.BringToFront; except end; ...... end; end;end;
 
谢谢各位的参与
 

Similar threads

D
回复
0
查看
837
DelphiTeacher的专栏
D
D
回复
0
查看
843
DelphiTeacher的专栏
D
D
回复
0
查看
677
DelphiTeacher的专栏
D
D
回复
0
查看
543
DelphiTeacher的专栏
D
后退
顶部