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