win32自动调整父窗口的大小以适合其内容

时间:2019-04-22 15:44:38

标签: c++ winapi

我创建了一个生成窗口的类,我希望更改窗口的大小以适合其中的内容。

例如,我有一个选择窗口,其中总共包含7个组合框和单选按钮(共4行),但是生成的窗口对于其中的内容来说太大了。

我希望父窗口的大小自动缩小以适合其中子窗口的内容。如果我添加了更多内容,我希望它能在不手动设置窗口大小的情况下变得更大

CreateWindowEx(
        dwExStyle, ClassName(), lpWindowName, dwStyle, x, y,
        nWidth, nHeight, hWndParent, hMenu, GetModuleHandle(NULL), this
    );

我使用CW_USEDEFAULT作为宽度和高度

1 个答案:

答案 0 :(得分:0)

没有参数设置可以自动修改父窗口的大小。相反,您需要在父窗口中设置自己的窗口:

  1. 从子窗口获取WM_PARENTNOTIFY消息(确保子窗口没有WS_EX_NOPARENTNOTIFY扩展窗口样式),然后确定它是否是create({{1} })或销毁({lParam = WM_CREATE)消息。

  2. 计算窗口大小。

这是一个简单的调整大小代码:

lParam = WM_DESTROY

我在窗口中添加了2个菜单。对于整个项目,请参考此link