c++ - 需要知道 Windows API 才能在我的应用程序被激活时获得回调
问题描述
我有一个 wxWidgets windows 应用程序,我在单击我的应用程序上的某个按钮时启动另一个应用程序,这个新启动的应用程序的行为类似于模式窗口并且我的应用程序被发回,但是当用户使用 Alt+Tab 或单击我的应用程序图标时,我的应用程序出现在前面,而应该显示已经打开的子应用程序
我想出了如何将应用程序放在前面,现在我想知道我是否可以为父应用程序设置回调,只要应用程序被激活(通过 Alt+Tab 或任务栏图标或任何其他方式),就会调用该回调,所以此时我可以将我的子应用程序放在前面。是否有用于此的windwos API?
解决方案
发送到正在激活的窗口和正在停用的窗口。如果窗口使用相同的输入队列,则消息是同步发送的,首先发送给被去激活的顶层窗口的窗口过程,然后发送给被激活的顶层窗口的窗口过程。如果窗口使用不同的输入队列,消息是异步发送的,所以窗口立即被激活。
case WM_ACTIVATE:
{
// test if window is being activated
if(LOWORD(wParam)!=WA_INACTIVE)
{
// application is being activated
}
else
{
// application is being deactivated
}
}
break;
编辑:
如果想用钩子来监控窗口是否被切换,可以参考这个链接。
推荐阅读
- python - 我无法再打开 Python 并收到以下错误:“没有安装的调试器启用了即时调试。我能做些什么?
- xaml - Xamarin xaml 绑定
- excel - 在复制另一条数据时在一个单元格中搜索“数字”
- c++ - reinterpret_cast 在 char* 指针上
- python - 按列名和多索引向多索引数据框添加值
- http - 将令牌传递给 GET
- vim - 如何强制 vim 拼写检查器忽略小写/大写错误
- java - Java 8 中的异步方法后跟并行执行的方法
- webview - 相机在 WebView Xamarin.Forms Android 中不起作用
- javascript - YouTube 自动播放在 Chrome 中不起作用