【发布时间】:2019-12-08 00:25:29
【问题描述】:
我有一个用 C++ 编写的 MFC 应用程序,它通过 ShellExecuteEx() 启动记事本。假设这两个应用程序都在双显示器系统上运行,我如何确保记事本与主应用程序在同一显示器上打开?
【问题讨论】:
-
您可以在
SHELLEXECUTEINFO结构的fMask成员中设置SEE_MASK_HMONITOR位,并在hMonitor成员中指定监视器句柄。 -
... 并使用
MonitorFromWindowAPI 来获取应用程序主窗口(大部分)所在的监视器的句柄。 -
谢谢阿德里安。我将在星期一对此进行测试,因为我目前无法访问双显示器系统。假设记事本已经启动,是否可以将其移动到与其他应用程序相同的显示器上?
-
@melanie93 给定目标
HMONITOR和HWND移动,您可以使用GetMonitorInfo()获取显示器的屏幕矩形,然后使用SetWindowPos()在该矩形内移动窗口