窗体置顶问题 各位大虾,我想实现把窗体置顶,就是其它程序的窗口也不能覆盖它,有点类似于Windows的任务管理器的窗口,但我想即使是按Windows+D 这样的组合键也不能将窗口最小化。给提点建议了... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 再最前面最简单可以设置formstyle属性为fsStayOnTop至于想控制windows+D的键盘事件,你就必须做键盘钩子截获windows消息了。 如果你需要我可以帮你做一个低级键盘钩子的dll封住win键+D键。呵呵 在application.OnDeactivate事件里写如下语句就成了: SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE); // 设置窗口在最上面 SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE or SWP_SHOWWINDOW); // 显示窗口 To xixuemao(吸血猫) 先谢了! To kongguangming(Fly) 所说的“拦截隐藏消息”是什么意思?没看明白,能详细解释一下么? To Idle_(阿呆) 你的方法只能保证单一窗体时,可以处于最顶,并且不能屏蔽Win键+D 的组合键,仍然谢谢! 试过没? 别瞎说哦我测下来在整个程序最小化时都能将form2显示在最上面, 甚至在form2.hide后也可以显示出来(只要当前程序失去焦点), 谁说只能保证单一窗体的?看清楚, 不是form.OnDeactivate事件哦, 是application.OnDeactivate事件. To xixuemao(吸血猫) 不行啊,程序有错误,我先调一下看看。 本身dll文件没错误,我已经试过了。。是你的windows.pas里没有定义那个常量和结构,我可以把编译好的windows.pas和windows.dcu发给你。就没问题了。 To Idle_(阿呆) 我试过了,但是没用啊,要不你给我你的提供个联系方式我把测试程序给你,你看看,谢谢! 已经发了,不用改我的dll代码,我都是测试过才给你发的你把这两个文件替换掉,就可以了。新建一个工程,测试一下吧。 最简单可以设置formstyle属性为fsStayOnTop To xixuemao(俺可是㊣②㈧经儿滴人) 还是不行,我把测试程序回复到你邮箱里,帮我看看吧,谢谢! OK 问题解决了!解决方法用Idle_(阿呆)介绍的API函数SetWindowPos 并且将需要置顶的Form的FormStyle设为fsStayOnTop。不过用xixuemao(俺可是㊣②㈧经儿滴人)的方法确实可以解决Win键+D 组合键的问题。谢谢大家结帖了。 RAD studio 2010 修复包,定制自己的2010精简版 frReport1的标题如何改写呀 interbase6.5中建一个库Test.gdb,如何在库中创建表? TPoint 数组释放和重新设置长度(变小) 钩子失败 怎么样在delphi里面声明union类型?????????????????? 怎么实现数据库文件的保存功能阿?(access数据库文件的保存) 找东莞市内delphi专家帮助修改程序 时间的加减怎样算呀? '\'符号怎样表达 请教一下关于数据大小的问题 求助,各位大大 TNMUDP控件 是哪个控件板上的啊,谢谢!
至于想控制windows+D的键盘事件,你就必须做键盘钩子截获windows消息了。
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE); // 设置窗口在最上面
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE or SWP_SHOWWINDOW); // 显示窗口
先谢了!
所说的“拦截隐藏消息”是什么意思?没看明白,能详细解释一下么?
你的方法只能保证单一窗体时,可以处于最顶,并且不能屏蔽Win键+D 的组合键,仍然谢谢!
我测下来在整个程序最小化时都能将form2显示在最上面, 甚至在form2.hide后也可以显示出来(只要当前程序失去焦点), 谁说只能保证单一窗体的?看清楚, 不是form.OnDeactivate事件哦, 是application.OnDeactivate事件.
不行啊,程序有错误,我先调一下看看。
我试过了,但是没用啊,要不你给我你的提供个联系方式我把测试程序给你,你看看,谢谢!
还是不行,我把测试程序回复到你邮箱里,帮我看看吧,谢谢!
解决方法
用Idle_(阿呆)介绍的API函数SetWindowPos 并且将需要置顶的Form的FormStyle设为fsStayOnTop。
不过用xixuemao(俺可是㊣②㈧经儿滴人)的方法确实可以解决Win键+D 组合键的问题。谢谢大家结帖了。