急..!在VB里.如何做到当窗口失去焦点的时候.响应事件呢.??]

时间:2021-06-05 23:54:08
如标题!
如;
   当前我运行程序1,和程序2,当我由程序1的窗口切换到程序2的窗口时,如何让程序1响应一个事情呢.?

5 个解决方案

#1


用子类化解决,或者用个计时器定时执行 GetForegroundWindow 函数(GetActiveWindow 函数也行),检查当前活动窗口的句柄是否是 Me.hWnd 。

#2


lostfocus
或deactivate事件

#3


我试过了..用lostfocus
或deactivate事件
这两个事情没办法影响的啊..这是怎么回事呢.?

#4


lostfocus、deactivate 事件只是在 VB 工程里面窗口相互切换时才会触发,不同进程窗口切换时是不会触发 lostfocus、deactivate 事件的。只能通过 API 解决,较好的办法就是使用子类化技术来响应窗体失去输入焦点的消息。

在 CSDN 全文检索中搜一下“子类化”会有很多例子的。

#5


timer可以啊……

#1


用子类化解决,或者用个计时器定时执行 GetForegroundWindow 函数(GetActiveWindow 函数也行),检查当前活动窗口的句柄是否是 Me.hWnd 。

#2


lostfocus
或deactivate事件

#3


我试过了..用lostfocus
或deactivate事件
这两个事情没办法影响的啊..这是怎么回事呢.?

#4


lostfocus、deactivate 事件只是在 VB 工程里面窗口相互切换时才会触发,不同进程窗口切换时是不会触发 lostfocus、deactivate 事件的。只能通过 API 解决,较好的办法就是使用子类化技术来响应窗体失去输入焦点的消息。

在 CSDN 全文检索中搜一下“子类化”会有很多例子的。

#5


timer可以啊……