Board logo

标题: [基础] 用MouseMove后让人头疼的闪烁 [打印本页]

作者: zali    时间: 2008-3-11 16:24     标题: 用MouseMove后让人头疼的闪烁

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

附件: shortkey.rar (2008-3-11 16:24, 1.83 KB) / 该附件被下载次数 333
http://bbs.lihuasoft.net/attachment.php?aid=1378
作者: Nothing    时间: 2008-3-11 17:48

这是Windows的一些设置,你可以将窗口先置为最顶端窗口,然后再取消最顶端窗口。
作者: zali    时间: 2008-3-12 08:54

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

先用这个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
取消最顶端显示
作者: zali    时间: 2008-3-14 15:47

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




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0