CreateWindowW 窗口太小

CreateWindowW window is too small

本文关键字:窗口 CreateWindowW      更新时间:2023-10-16

当我创建窗口时,它小于指定的宽度和高度,应该是840x840。实际创建的窗口只有大约 825x782(不包括菜单等(。我无法弄清楚为什么窗户很小,以前从未遇到过这个问题。提前谢谢。

CreateWindowW(wc.lpszClassName, L"Window",
WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 200, 840, 840,
NULL, NULL, NULL, NULL);

解决方案是使用 Simon Mourier 评论的 AdjustWindowRect 函数,其中rect是客户端窗口的大小。

RECT rect = {0, 0, width, height};
AdjustWindowRect(&rect, WS_OVERLAPPEDWINDOW, true);
CreateWindowW(wc.lpszClassName, L"Window",
WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 200, 
rect.right - rect.left, rect.bottom - rect.top, 
NULL, NULL, hPrevInst, NULL);