vb6.0窗体总是最前
我做了一个程序,可以把窗体移动到边缘然后像qq一样隐藏,但是发现在全屏(全屏的win32程序,比如最大化的ie)时,把鼠标移动到窗体的位置却不弹出了(非最大化的win32...
我做了一个程序,可以把窗体移动到边缘然后像qq一样隐藏,但是发现在全屏(全屏的win32程序,比如最大化的ie)时,把鼠标移动到窗体的位置却不弹出了(非最大化的win32程序正常弹出),目测是窗口不再最前。。。。。求解。。。
其实说白了,就是怎么让窗口永远在最前》》》》》 展开
其实说白了,就是怎么让窗口永远在最前》》》》》 展开
1个回答
展开全部
SetWindowPos(),第二个参数用HWND_TOP或者HWND_TOPMOST,可以把窗口放到z序顶部。两个试一试,应该能解决你的问题
追问
其实说白了,就是怎么让窗口永远在最前》》》》》
就像qq的登录界面。。。。。。
追答
你这个问题有点复杂哦,没有代码,不太好说,按你的思路,应该是不断在wm_pain消息里调用SetWindowPos()来保持z序,但我认为这应该不是最好的解决方法,我认为思路应该是这样的:
你设定一个位置,窗口移动到那里就自动隐藏了,如果整个窗口都不在屏幕范围内了,那么这个窗口显然收不到wm_pain、WM_MOUSEMOVE之类的消息了,那么想用消息响应的方式把他弹出来应该是不行了,这时候你应该检测鼠标在屏幕上的位置,如果移动到某个区域就弹出窗口。
个人认为,要保证在窗口的任何状态下都能弹出,你需要这样:
在窗口隐藏之后开个线程,监视鼠标的位置,用while循环调用GetCursorPos;
鼠标移动到你要的位置就移动窗口,然后退出循环;
当然为了性能问题还需要设置这个线程的优先级什么的,内容比较多自行补脑吧。
如果说vb没有消息响应,vb有setwindowlong和getwindowlong,或者不知道怎么开线程,抱歉这里真写不下,请自己先充充电吧
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询