MFC布局Children和 Composite 水平布局 设置控件大小无效
时间: 2024-02-05 18:11:22 浏览: 111
mfc之随父窗口变化调整控件大小位置
4星 · 用户满意度95%
在 MFC 中,如果你使用了 `CWnd` 类中的 `MoveWindow` 函数来设置控件的大小和位置,但是发现设置无效,可能是因为你没有使用正确的布局方式。
对于 `CMFCChildWnd` 和 `CMFCPropertyGridProperty` 这样的子窗口控件,可以使用 `CMFCTabCtrl` 控件来实现水平布局。具体步骤如下:
1. 在对话框或父窗口中添加一个 `CMFCTabCtrl` 控件。
2. 在 `CMFCTabCtrl` 中添加多个标签页,并将每个标签页设置为需要放置的控件的容器。
3. 将需要放置的控件添加到对应的标签页中。
当你需要调整子窗口控件的大小时,可以使用 `CRect` 类来指定控件的位置和大小,然后将其传递给 `CMFCTabCtrl` 控件的 `AdjustRect` 函数来调整控件的位置和大小。
对于 `CMFCVisualManager` 控件,可以使用 `CMFCVisualManager::GetInstance` 函数获取当前的视觉管理器对象,并调用其 `OnUpdateToolbars` 函数来更新界面布局。例如:
```
CMFCVisualManager::GetInstance()->OnUpdateToolbars();
```
这样就可以实现在使用 `MoveWindow` 函数设置子窗口控件大小和位置后,正确地显示控件并更新布局。
阅读全文