我正在尝试使用MoveWindow()函数将窗口移动到屏幕上的特定位置。但是,窗口没有移动到正确的位置,并且在指定的坐标和窗口实际移动位置之间留有间隙。
这是一些演示此问题的示例代码。在此代码的右边键入字母r
,在中心键入c
,在左边输入l
,此控制台窗口将占据控制台窗口的三分之一位置。我的显示器的分辨率为3440 x 1440
,因此这些段各自占据大约3440/3
像素的水平空间。
#include <windows.h>
#include <iostream>
int main()
{
while (true)
{
HWND window = GetForegroundWindow();
switch (getchar())
{
case 'l':
MoveWindow(window, 0, 0, 1147, 1400, TRUE);
break;
case 'c':
MoveWindow(window, 1147, 0, 1146, 1400, TRUE);
break;
case 'r':
MoveWindow(window, 1147 + 1146, 0, 1147, 1400, TRUE);
break;
case 'e':
return 0;
}
}
return 0;
}
如果我运行此代码的三个实例,并使用letter命令将它们并排放置,则这是得到的结果的图像。每个窗口似乎比左侧和右侧都要小7个像素。
如何使窗口完全占据我在MoveWindow
命令中指定的空间,而不是在窗口周围留下7个像素的边框?