首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

MessageDlg 窗口被擋住,该怎么处理

2012-02-12 
MessageDlg 窗口被擋住程序在一個fsStayOnTop的Form中用 MessageDlg 窗口提示用戶,Form1-FormStyle fsS

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 的样子好像跟线程无关的

热点排行