C++ Win32 API窗口高度不匹配

C++ Win32 API窗口高度不匹配,c++,winapi,C++,Winapi,我正在创建一个窗口,并将高度定义为768: RECT windowRect; windowRect.left = (long)0; windowRect.right = 1366; windowRect.top = (long)0; windowRect.bottom = 768; …以及以下样式: dwExStyle = WS_EX_APPWINDOW | WS_EX_CLIENTEDGE; dwStyle = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU;

我正在创建一个窗口,并将高度定义为768:

RECT windowRect;
windowRect.left = (long)0;
windowRect.right = 1366;
windowRect.top = (long)0;
windowRect.bottom = 768;
…以及以下样式:

dwExStyle = WS_EX_APPWINDOW | WS_EX_CLIENTEDGE;
dwStyle = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU;
…最后要做的是:

AdjustWindowRectEx(&windowRect, dwStyle, FALSE, dwExStyle);
//windowRect.left = -11;
//windowRect.right = 1377;
//windowRect.top = -38;
//windowRect.bottom = 779;
然后我创建了另一个窗口,试图填满整个屏幕,如下所示:

hTest = CreateWindow(L"STATIC", L"Testing", WS_CHILD | WS_VISIBLE | SS_BITMAP, 0, 0, windowRect.right - windowRect.left, windowRect.bottom - windowRect.top, hWnd, NULL, hInstance, 0);
宽1366,高768。我的电脑分辨率是1920 x 1080。 宽度完全对齐,精确到1366。 虽然高度很奇怪,768的时候,下面大约有10像素的余量。如果我使用的值高达779,没有任何变化,底部相同的10px余量仍然存在。如果我换成780px,它就被完全覆盖了

为什么会发生这种情况?最好的解决方法是什么?我想要一个与客户机高度完全相同的窗口菜单

编辑:我试过:

RECT r;
GetClientRect(hWnd, &r);
//r.right = 1366
//r.bottom = 768
我不知道为什么底部这个奇怪的区域会出现,尽管数字显示它很好。。。 白色区域下方的黑色边框是我正在创建的新子窗口:

虽然它的大小质量不好,但客户端区域的像素数正好是1366 x 768,这是我在CreateWindow函数中要求的。 为该主窗口创建高度为768像素的子窗口会导致上面的图像。
在顶部添加填充以检查顶部0是否实际为0且未使用标题边框表明它实际为0,也就是说,如果我向子窗口添加任何位置X,我会看到其上方的黑色背景。

何时创建第一个窗口?AdjustWindowRect实际上并不调整窗口,它只是计算新值。我在使用AdjustWindowRect后创建。为什么要创建带有按钮样式的静态控件?你是指SS_位图而不是BS_位图吗?对不起,这是一个输入错误。请显示序列。您应该先调整WindowRectex,然后为主窗口创建WindowEx。