如何在CMDIFramewndEx中设置m_wndClientArea的最小大小?

时间:2017-05-29 06:54:08

标签: mfc mfc-feature-pack

这是visualstudio屏幕。 image1

当将visualstudio屏幕的大小调整到最小时,tabbeddocument视图,左右对话框将以最小尺寸显示。 image2

调整大小后我通过拖动将屏幕调整到最大值就像这样。 image3

而在我的应用程序中,它是使用MFC功能包创建的MDI选项卡式组应用程序。 image4

当将选项卡docuemnt和右侧窗格重新调整为最小值时,调整为零宽度。对于右窗格,我使用SetMinSize()将最小大小设置为100。 image5

调整大小后我通过拖动将屏幕调整到最大值,右窗格不会显示。 image6

我想,要实现这一点,我们需要为CMDIFramewndEx的m_wndClientArea或CDockingManager的m_rectClientAreaBounds设置最小大小。

如何实现这一目标?

如果您有任何其他解决方案,请建议我。

由于

1 个答案:

答案 0 :(得分:0)

为了约束窗口的最小大小,您必须处理WM_GETMINMAXINFO消息: 在标题中:

afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);

和cpp:

ON_WM_GETMINMAXINFO()

void CChildFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) 
{
// TODO: Add your message handler code here and/or call default

lpMMI->ptMinTrackSize.x = 100;
lpMMI->ptMinTrackSize.y = 200;

CMDIChildWnd::OnGetMinMaxInfo(lpMMI);
}