[英]How to resize/reposition controls of a Window, when the window size changes
使用任何程序时,调整窗口大小会使控件更改位置以适应窗口。 你如何使用 C++ 做到这一点? 我看过很多 C# 的例子,但是 C++ 的例子都没有。
您可以在WM_SIZE
消息中使用SetWindowPos
API:
我创建了一个示例并使用以下代码:
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND hButton;
switch (message)
{
case WM_CREATE:
hButton = CreateWindow(TEXT("Button"), TEXT("OK"), WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 50, 50, 50, 50, hwnd, NULL, NULL, NULL);
return 0;
case WM_SIZE:
{
int cxClient = LOWORD(lParam);
int cyClient = HIWORD(lParam);
SetWindowPos(hButton, NULL, cxClient / 3, cyClient / 4, cxClient / 5, cyClient / 2, SWP_SHOWWINDOW);
return 0;
}
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
创建的按钮将根据我的调整大小窗口调整大小:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.