“hibernate”应用程序有七种方式可以成为“主动”应用程序,基于最小化或简单模糊的组合,以及是否通过alt-tab重新激活,鼠标单击图标,通过从另一个程序发送一个Windows消息重新激活它,或者当应用程序遮住它时closures(或最小化),简单地被“发现”为桌面上最顶级的应用程序。
在所有情况下,我需要知道我的应用程序现在是活动的(例如桌面上的最高级)应用程序,以便我可以从数据库刷新其数据。
我知道应用程序“知道”什么时候是最顶级的,因为一旦它们变成最顶级的,我就可以看到边界变成活动的颜色。
如果我陷阱WM_ACTIVATE_APP消息,这大部分时间工作,但似乎并没有什么时候我的应用程序被最小化,并恢复到活动状态。
如何避免在Windows中双击.bat文件时自动closures命令提示符
安装程序包含在Wamp上的PEAR的path
(#)在rundll32.exe参数中意味着什么?
在Citrix环境中的用户会话之间相互排斥
Qt链接静态构build的lib
我需要告诉我,我的应用程序现在是最先进和最活跃的,在用户做任何事情之前。
有什么build议么? 谢谢,戴夫
如何运行firebird作为应用程序?
如何在Windows Server 2008 R2上安装Net.Tcp端口共享服务?
如何检出本地svn副本(而不是svn服务器)的子文件夹?
如何debugging在启动时启动的进程?
Windows音量混音器图标大小过大
尝试以下操作:
经过这样的时间之后,数据库中的数据应该被视为过时,请在窗口(或WinForms等效项)上调用InvalidateRect()。 如果你的窗口没有被遮挡,它将立即得到WM_PAINT。 但是,如果窗口被完全遮蔽了,那么在操作系统实际需要显示它之前,它不应该得到WM_PAINT,也就是说,当遮蔽窗口被移动时。 刷新数据库中的数据,以响应WM_PAINT消息。
事实证明, 雷蒙德·陈在2003年的博客上写道 。
经过调查,我找到了我的问题的原因和解决方案。
我发现WM_ACTIVATEAPP消息正在发送(和接收)正常,但是这种情况发生时,应用程序仍处于最小化状态(即恢复之前)。
因为我有一个if测试,当应用程序被最小化(这是毫无意义的,因为用户不会看到结果!)时不做任何事情,所以没有采取任何行动。
WM_ACTIVATEAPP消息是当应用程序被“发现”时发送的,这是可以的,因为应用程序没有被最小化。
我现在也回应WM_WINDOWPOSCHANGED在恢复时被触发,这个组合似乎覆盖了我的应用程序可以重新激活的所有七种方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。