带有MoveWindow的WinAPI C ++调整窗口大小留下7个像素边框

时间:2019-03-16 04:59:26

标签: c++ windows winapi

我正在尝试使用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个像素。

Link to Image

如何使窗口完全占据我在MoveWindow命令中指定的空间,而不是在窗口周围留下7个像素的边框?

0 个答案:

没有答案