MessageDlg 窗口被擋住
程序在一個fsStayOnTop的Form中用 MessageDlg 窗口提示用戶,
Form1->FormStyle = fsStayOnTop ;
if(MessageDlg("請確認刪除?",mtConfirmation ,TMsgDlgButtons()<<mbYes<<mbNo, 0,mbNo)
!= mrYes)
{...}
在很多電腦上均正確顯示,也就是Message會在Form1的前面。
但發現有一台電腦該Message提示總被Form1擋住,Message窗口在Form1的後面去了。
如果說是程序的問題,為何大部分電腦正常,如果說是操作系統的問題,可發現電腦上裝的都是WINXP SP3 。
不知何原因。如何解決。
[解决办法]
观望结果~~
[解决办法]
你要确认真一下,挡隹你MessageDlg的那个窗口是不是MessageDlg的parent或owner只有这两个情况下才会出现这种情况。
[解决办法]
这样肯定是没有问题的。因为在ShowModal后,其它窗口都被disabled掉了,只有当前窗口可用.
[解决办法]
fsStayOnTop的Form 是不是在showmessage以后发生了一个事件,或者FOCUS 等类似事情.
[解决办法]
在线程中调用ShowMessage有时会出现异常。不知道MessageDlg会不会。
出现时,会把ShowMessage的窗口变得无限长,或无限宽。
[解决办法]
设置窗口的position为默认
我估计你设置了这个position了
我以前也遇到过这个问题
[解决办法]
换成MessageBox
[解决办法]
如果是线程里就用Application->MessageBox
但看lz 的样子好像跟线程无关的