我想知道如何使用具有特定客户区大小的 Win32 API 创建一个窗口。
当尝试使用以下代码创建窗口时,整个窗口为 640x480,窗口的镶边占据了部分客户区:
HWND hWnd;
WNDCLASSEX WndClsEx;
ZeroMemory(&WndClsEx, sizeof(WNDCLASSEX));
WndClsEx.cbSize = sizeof(WNDCLASSEX);
WndClsEx.style = CS_HREDRAW | CS_VREDRAW;
WndClsEx.lpfnWndProc = DefWindowProc;
WndClsEx.cbClsExtra = 0;
WndClsEx.cbWndExtra = 0;
WndClsEx.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClsEx.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClsEx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClsEx.lpszMenuName = NULL;
WndClsEx.lpszClassName = TEXT("Title");
WndClsEx.hInstance = hInstance;
WndClsEx.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
RegisterClassEx(&WndClsEx);
hWnd = CreateWindowEx( NULL,
TEXT("Title"),
TEXT("Title"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
640,
480,
NULL,
NULL,
hInstance,
NULL);
假设简单的数学运算并不能完全解决问题,我该如何考虑 Chrome 尺寸?
注意:我是在创建窗口后使用 SDL,但我猜测它是与窗口大小绑定(bind)的,对其大小没有影响。
最佳答案
您可以使用 AdjustWindowRect或 AdjustWindowRectEx函数计算给定所需客户区大小的窗口大小。
关于c++ - WinAPI:创建具有指定客户区大小的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4843806/