VB 窗体焦点问题 急!!!

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:40:13
我想编这样一个程序:在窗体失去焦点时立刻给窗体设置焦点,就是想让焦点始终在这个窗体上(类似于键盘锁),我是用Timer在短时间反复执行"form.Setfocus"事件,结果发现在其失去焦点后窗口标题栏一直在闪,而实际的焦点仍在其他地方,只有单击了窗体才停止闪烁,请问有什么办法可以解决这个问题?
我是VB新手,代码请写得详细些(如果用API,请写明声明全过程和如何调用),谢谢!
那位"rhq752",请说的详细些。
还有那位"ljl88900",你改过的代码我试过,还是不行,比如说你把Timer间隔设为100毫秒,然后输入你那个语句(包括声明),点“运行”,然后把VB最小化,直接在桌面上点鼠标,窗体就会不停的闪。

根据你的补充,特作如下改动。经调试,没有出现窗口标题栏一直在闪的现象。

即在timer控件内写入如下代码:
if GetForegroundWindow<> me.hwnd then
Me.SetFocus
end if

当然,之前你必须先声明
private Declare Function GetForegroundWindow Lib "User32" () As Long

直接 form.show 1

这样多好!~

使用API将键盘的功能键屏蔽,再将鼠标锁定到窗体内部,以前做过这样的,现在都好久不用了