Mfc 如何在CMDIFramewndEx中设置m_WndClient区域的最小大小?

Mfc 如何在CMDIFramewndEx中设置m_WndClient区域的最小大小?,mfc,mfc-feature-pack,Mfc,Mfc Feature Pack,这是visualstudio屏幕。 将visualstudio屏幕大小调整为最小值时,选项卡文档视图、左侧和右侧对话框窗格将以最小的大小显示。 调整大小后,如果我通过拖动将屏幕调整到最大值,它会变成这样。 而在我的应用程序中,它是使用MFC功能包创建的MDI选项卡式组应用程序。 当调整到最小值时,选项卡式文档和右侧窗格的宽度调整为零。对于右侧窗格,我使用SetMinSize()将最小大小设置为100。 调整大小后,如果通过拖动将屏幕调整到最大值,则不会显示右侧窗格。 我想,要实现这一

这是visualstudio屏幕。

将visualstudio屏幕大小调整为最小值时,选项卡文档视图、左侧和右侧对话框窗格将以最小的大小显示。

调整大小后,如果我通过拖动将屏幕调整到最大值,它会变成这样。

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

当调整到最小值时,选项卡式文档和右侧窗格的宽度调整为零。对于右侧窗格,我使用SetMinSize()将最小大小设置为100。

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

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

如何做到这一点

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


谢谢

为了限制窗口的最小大小,您必须处理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);
}

我们不知道什么是
CMFCFramewndEx
,或者
m_-wndClientArea
。需要更多的努力,以及一份清晰的问题陈述。请详细说明,可能需要一张图片。就目前而言,您的问题还不清楚。请不要发布代码的图片,而是发布代码。嗨,弗拉维尤,谢谢您的回复。我已经尝试过您的解决方案。它仅在级联模式下工作。我的应用程序的左右两侧都有MDitabBedGroup,因此此解决方案不起作用。您为什么要调用基类实现?看看.Hi IInspectable,是的。对于应用程序窗口,框架设置了一些最小宽度,但如果我调整固定面板和选项卡组区域的大小,它还允许零宽度。对于停靠面板,我可以通过在CDockablePane派生类中重写OnGetMinMaxInfo来设置最小宽度,但对于TabbeGroupArea,我不知道如何设置最小宽度一个可能的解决方法是限制CMainFrame的大小,以便不在所有右侧窗格中缩小。。。