我有 2 台具有不同分辨率和缩放比例的显示器:
2560 * 1440 缩放 x1(主要)
1920 * 1200 缩放 x1.5(从主 [2][1] 向左对齐到顶部)
我的应用程序正在更改另一个应用程序窗口的位置。我尝试设置位置的窗口尺寸为 300x200。我将窗口位置设置为 (-150|200) 并在下一行检查位置:
::SetWindowPos(this->handle, 0, lLeft, lTop, 0,0, SWP_NOREPOSITION | SWP_NOSIZE);
// output lLeft, lTop
RECT r = { 0 };
::GetWindowRect(this->handle, &r);
// output r.left, r.top
我有以下输出:
<< -150 200 // SetWindowPos
>> -740 133 // GetWindowRect
定位后,窗口的缩放比例为 1(从主窗口),而位于辅助窗口,应该缩放 1.5
它错位了窗口x = [-150 ... 0]
当窗口部分在辅助监视器上并且窗口的中间点已经在主监视器上时,看起来会发生这种情况。
我能做些什么来避免这种行为吗?