发新话题
打印

[基础] 用MouseMove后让人头疼的闪烁

用MouseMove后让人头疼的闪烁

很简单的一个功能,在鼠标掠过目标窗体时将目标窗体激活取得焦点,但是运行时鼠标一经过窗体,总是出现窗体闪烁,无法设为当前窗口,请老大指点一下是不是还要加些什么东西?

附件

shortkey.rar (1.83 KB)

2008-3-11 16:24, 下载次数: 434

TOP

这是Windows的一些设置,你可以将窗口先置为最顶端窗口,然后再取消最顶端窗口。
换个头像,看见广告就眼红,直接封ID。

TOP

去掉置顶试了下,会好很多,偶而闪烁,
但是...另一个问题,程序在另一个软件大窗口内运行,如果失去置顶,那就看不见了,我尝试在Form1.SetFocus后面加上windows_not_ontop (hwnd),然后
Form_LostFocus()事件下加上windows_ontop (hwnd),但是恢复不了置顶的属性,有没别的办法呢,窗口要始终在最前,激活时不会闪?

TOP

先用这个API将窗口设置最顶端
SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 1 Or 2

然后Form1.SetFocus之后,用SetWindowPos Me.hwnd, -2, 0, 0, 0, 0, 1 Or 2
取消最顶端显示
换个头像,看见广告就眼红,直接封ID。

TOP

还是不怎么理想,已经用别的方式取代了,不过又学会了一招,很感谢你的指点!

TOP

发新话题