MFC DockablePane not floating or hiding

2019-09-11 09:47发布

问题:

Is there any way to make a MFC DockablePane (from the new Feature Pack) that is docked in a window not able to float or to hide (and even disable the context menu that allows the user to select the states - dockable, float, hide etc.)

What I basically want is to have 3 panes on a window that can change their horizontal dimensions, but not their position inside the window. Any suggestion?

回答1:

The solution is to extend the CDockablePane and override in this class the following events:

virtual BOOL CanFloat() const;
virtual BOOL CanBeClosed() const;
virtual BOOL CanAutoHide() const;

so that they return FALSE;

for more information see MSDN Customization Tips for the MFC Extensions



回答2:

Try changing the dwControlBarStyle when you create the window (with CDockablePane::Create).



回答3:

Another solution is, just call

CBasePane::SetControlBarStyle(AFX_CBRS_RESIZE|AFX_CBRS_CLOSE);