我们有一个在多显示器环境中运行的应用程序。用户通常将应用程序对话框分散到多个监视器上。
如果用户锁定工作站,然后解锁它,我们的应用程序就会被告知调整大小。
我们的用户发现这种行为令人沮丧,因为他们随后花了一些时间恢复以前的布局。
我们还不确定是图形驱动程序请求调整大小还是 Windows。希望通过这个问题,哪个组件负责会变得更清楚,
(文件)资源管理器和 Firefox 等流行应用程序在此设置中的行为方式相同。只需复制:
- open Explorer (
Win+E
)
- 将资源管理器窗口水平拖动到大于 1 个屏幕
- 锁定工作站(
Win+L
),
- unlock
- 应用程序现在应该调整大小以仅在一个屏幕上
当工作站锁定然后解锁时,如何防止窗口大小调整?
我们需要在检查中编写代码(解锁吗?
还有其他我们不知道的机制吗?
在调整窗口大小之前,应用程序将获得一个WM_WINDOWPOSCHANGING http://msdn.microsoft.com/en-us/library/ms632653(VS.85).aspx来自 Windows 的消息。您可以拦截该消息并更改参数,强制窗口保持不变。您需要小心,因为当用户尝试移动或调整窗口大小时,您会收到相同的消息。也可能是在最大化或最小化时。
Edit:您可以使用WTSRegisterSessionNotification函数 http://msdn.microsoft.com/en-us/library/aa383841(VS.85).aspx获取其他消息。这些消息旨在实现快速用户切换,但锁定屏幕在 Windows 中作为系统会话实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)