读书人

怎么使modal窗口不被挡住

发布时间: 2013-02-24 17:58:56 作者: rapoo

如何使modal窗口不被挡住
我程序中有主窗体 form1和子窗体form2,form2以form2.show显示
主窗体中点击按钮先启动一个 ttimer,然后application.messagebox('hello','title',mb_iconinformation)显示一个modal的消息框,这是ttimer计时器到达,在ontimer中执行form2.bringtofront,将form2提前,从而盖住了modal消息框,使得鼠标无法操作窗口了。如果 alt+tab切换一下窗口,可以吧modal消息框提前到上面显示,这样可以关闭modal消息框了。请问如何在代码里使modal消息框不被覆盖住,就是保持modal消息框Zorder位于最上面?
[解决办法]
messagebox的最后一个参数or MB_SYSTEMMODAL 或 or MB_TOPMOST
举例:
windows.MessageBox(0, '顶层窗口', '顶层窗口', MB_ICONINFORMATION or MB_SYSTEMMODAL);

详见MSDN
[解决办法]

引用:
找到方法了,form2.bringtofront后添加一句,SetForegroundWindow( application.handle )激活应用程序就可以了。如何啊!!!

不错,如果这样呢:SendMessage(Application.Handle,WM_ACTIVE,0,0);?

读书人网 >.NET

热点推荐