0

我有一个 SDI 应用程序 [MFC] 有两个 spitter 将视图分成 3 个视图。我在哪里实现了在所有 3 个视图中都有 CListCtrl/CtreeCtrl 的 CFormview。

我想要的是使控件适合应用程序中的屏幕。Ctrl 不适合屏幕,并且在扩展或缩小 spitter 时无法缩放。那么如何实现适合屏幕的功能呢?

谢谢

4

2 回答 2

0

当拆分器更改任何窗格窗口的大小时,该窗口接收 WM_SIZE。将 WM_SIZE 处理程序添加到 CFormView(s) 并在该函数中调整子控件的大小以适应。WM_SIZE 将新大小传递给您,并且 m_some_control.MoveWindow(...) 可用于调整每个控件的大小。

于 2014-04-14T11:52:33.730 回答
0

CFormView 具有静态大小并且通常可以滚动。所以这不是你真正的解决方案。所以不要使用 CFormView。

您可以使用拆分器窗口再次划分每个窗格以保存树 ctrl 和列表 ctrl。如果您不需要 Doc/View,请创建您自己的包含 CListCtrl 和 CTreeCtrl 的 CWnd 并覆盖 WM_SIZE 并调整其中两个子控件的大小。

使用 CView 作为父级也可以,再次覆盖 WM_SIZE 以便子控件进入视图的完整区域。

如果您使用 CWnd 或 CView 作为父类,请考虑使用 IsDialogMessage 来处理两个窗口之间的 VK_TAB 键盘切换...

于 2014-04-14T11:40:50.310 回答