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

如果让一个窗口永远保持在本程序的最前端?该怎么处理

2012-03-18 
如果让一个窗口永远保持在本程序的最前端?如果让一个窗口永远保持在本程序的最前端(包含显示与输入),用户

如果让一个窗口永远保持在本程序的最前端?
如果让一个窗口永远保持在本程序的最前端(包含显示与输入),用户无法切换到本程序已打开的其它窗口。

目前我已知的一个方法是写一个OnDeactive事件,一但离开就SetFocus()一次,但感觉还是不太好用。。。

还有一个方法就是,在知道最前端的窗体的TForm指针后,让此TForm-> Enabled=false;然后,再显示我要的这个永远最前端的窗体,这样,就可以让这个窗口永远显示在“本程序”所有窗体的最前端了。。。

但,查找某个最前端窗口的API是GetFrontWindow(),此API可以得到最前端的窗体HWND,但需要从HWND到TForm好像很复杂,不知道如何继续。。。

[解决办法]
FormStyle = fsStayOnTop;
[解决办法]
要让用户无法切换,恐怕不太容易
[解决办法]
我已经找到好方法了,要注意我的条件是“本程序”的最前端。。。

所以,joyous的方式不对,但看在你支持我的贴子上,给2分。。。

如果要让一个非model窗口永远显示在“本程序”的最上方:

正确的做法是,通过Screen-> ActiveForm获得当前程序最前的窗口,然后,在显示那个需要永远在最上方的窗口前,把ActiveForm-> Enabled=false,这样,那个程序就永远在“本程序”的最上方了。直到那个永远在最上方的窗口关闭后,再AcitveForm-> Enabled=true;
[解决办法]
我壹分也不要。

热点排行