读书人

怎么让一个窗体只在本程序内是置顶的

发布时间: 2012-02-12 17:16:33 作者: rapoo

如何让一个窗体只在本程序内是置顶的?
主窗口:Form_Main
我想在主窗口上浮动一个窗口Form_Mask

在Create事件里创建Form_Mask如下:

Form_Mask:=TForm_Mask.Create(Form_Main);
setwindowpos(Form_Mask.handle,Hwnd_Topmost,0,0,0,0,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);//窗口置顶
Form_Mask.Show;

但是当我点其它程序的窗口(比如我的电脑)时,Form_Mask还是在上面,结果我的电脑夹在了两个窗口中间!

如何才能使Form_Mask一直在Form_Main之上,但我点其它程序时,Form_Main和Form_Mask就都到后面去?

[解决办法]
那就在 Form_Main或 Form_Mask 获取焦点时,设置Form_Mask Hwnd_Topmost,
在 Form_Main 失去焦点时,取消Form_Mask Hwnd_Topmost...
[解决办法]
测试了一下,很正常
Form_Mask只在本程序置顶,打开其它程序时,会盖着它

读书人网 >.NET

热点推荐