繁体   English   中英

当窗口大小更改时,如何调整窗口的大小/重新定位控件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM