如何激活指定的窗口事件
2009-08-31 00:11
267 查看
文章来自:http://www.vckbase.com/bbs/prime/viewprime.asp?id=340
我们知道,Windows 9x/2000中SetForegroundWindow函数当用户正在操作其他窗口时是不能强制某个窗口为前景窗口的,而是激活窗口并调用 FlashWindowEx函数来通知用户。但是很多实际情况要求将激活窗口的同时将创建这个窗口的线程置为前景状态。碰到这种情况我们可以使用 USER32.DLL中的几个未公开API函数。
void SwitchToThisWindow (
HWND hWnd, // 被激活的窗口句柄
BOOL bRestore // 如果被极小化,则恢复窗口
);
必须动态加载这个函数。
typedef void (WINAPI *PROCSWITCHTOTHISWINDOW) (HWND, BOOL);
PROCSWITCHTOTHISWINDOW SwitchToThisWindow;
HMODULE hUser32 = GetModuleHandle("user32");
SwitchToThisWindow = ( PROCSWITCHTOTHISWINDOW)
GetProcAddress(hUser32, "SwitchToThisWindow");
接下来只要用任何现存窗口的句柄调用这个函数即可,第二个参数指定如果窗口极小化,是否恢复其原状态。
SwitchToThisWindow(hWnd, TRUE);
http://www.vckbase.com/sourcecode/system/activatewindow.zip
我们知道,Windows 9x/2000中SetForegroundWindow函数当用户正在操作其他窗口时是不能强制某个窗口为前景窗口的,而是激活窗口并调用 FlashWindowEx函数来通知用户。但是很多实际情况要求将激活窗口的同时将创建这个窗口的线程置为前景状态。碰到这种情况我们可以使用 USER32.DLL中的几个未公开API函数。
void SwitchToThisWindow (
HWND hWnd, // 被激活的窗口句柄
BOOL bRestore // 如果被极小化,则恢复窗口
);
必须动态加载这个函数。
typedef void (WINAPI *PROCSWITCHTOTHISWINDOW) (HWND, BOOL);
PROCSWITCHTOTHISWINDOW SwitchToThisWindow;
HMODULE hUser32 = GetModuleHandle("user32");
SwitchToThisWindow = ( PROCSWITCHTOTHISWINDOW)
GetProcAddress(hUser32, "SwitchToThisWindow");
接下来只要用任何现存窗口的句柄调用这个函数即可,第二个参数指定如果窗口极小化,是否恢复其原状态。
SwitchToThisWindow(hWnd, TRUE);
http://www.vckbase.com/sourcecode/system/activatewindow.zip
相关文章推荐
- 【VBS教程3】:VBS如何激活指定窗口
- VC如何激活并切换到指定的窗口
- treeview(winform)里如何用命令指定选中某一个节点,并引发afterselect事件?
- Qt 中如何捕获窗口停用和激活的消息
- 如何让DEDE标签输出的指定栏目新窗口打开
- Qt 中如何捕获窗口停用和激活的消息
- VC指定窗口模拟按键或鼠标事件
- Qt 中如何捕获窗口停用和激活的消息 Activate&Deactivate
- Selenium如何激活ajax和JavaScript事件 转至元数据结尾
- asp.net中如何回车触发指定按钮的事件(实现按回车提交)
- java组件的事件如何激活
- c# 如何应对鼠标离开,自动执行查询事件,并显示在指定地方
- 窗口如何激活自己
- 如何使一个窗口强制激活在最前端并且可以填写表单?
- [导入]在asp.net中,如何回车触发指定按钮的事件?
- 如何获得指定进程的主窗口
- MFC如何在父窗口的指定位置创建子窗口,及border边框属性设置
- 在asp.net中,如何回车触发指定按钮的事件
- 如何使用数据窗口更新指定的表
- 通过window.showModalDialog弹出的窗口中的GridView,如何触发翻页事件?