我有一个 SDI 应用程序 [MFC] 有两个 spitter 将视图分成 3 个视图。我在哪里实现了在所有 3 个视图中都有 CListCtrl/CtreeCtrl 的 CFormview。
我想要的是使控件适合应用程序中的屏幕。Ctrl 不适合屏幕,并且在扩展或缩小 spitter 时无法缩放。那么如何实现适合屏幕的功能呢?
谢谢
我有一个 SDI 应用程序 [MFC] 有两个 spitter 将视图分成 3 个视图。我在哪里实现了在所有 3 个视图中都有 CListCtrl/CtreeCtrl 的 CFormview。
我想要的是使控件适合应用程序中的屏幕。Ctrl 不适合屏幕,并且在扩展或缩小 spitter 时无法缩放。那么如何实现适合屏幕的功能呢?
谢谢
当拆分器更改任何窗格窗口的大小时,该窗口接收 WM_SIZE。将 WM_SIZE 处理程序添加到 CFormView(s) 并在该函数中调整子控件的大小以适应。WM_SIZE 将新大小传递给您,并且 m_some_control.MoveWindow(...) 可用于调整每个控件的大小。
CFormView 具有静态大小并且通常可以滚动。所以这不是你真正的解决方案。所以不要使用 CFormView。
您可以使用拆分器窗口再次划分每个窗格以保存树 ctrl 和列表 ctrl。如果您不需要 Doc/View,请创建您自己的包含 CListCtrl 和 CTreeCtrl 的 CWnd 并覆盖 WM_SIZE 并调整其中两个子控件的大小。
使用 CView 作为父级也可以,再次覆盖 WM_SIZE 以便子控件进入视图的完整区域。
如果您使用 CWnd 或 CView 作为父类,请考虑使用 IsDialogMessage 来处理两个窗口之间的 VK_TAB 键盘切换...