首页 > 解决方案 > MFC 无可见边框/框架样式

问题描述

我想在 MFC 应用程序中有多个可停靠窗格类。问题是当它们处于停靠状态时,我无法让它们显示它们的框架/边框,因此,当它们都停靠时,您无法检测到它们或弄清楚它们在哪里分开。

我正在从 CDockablePane 类创建两个类。

class MFCDockPanelLeft : public CDockablePane

然后在大型机中,我尝试使用 CBRS_BORDER_ANY 或 WS_THICKFRAME 创建它们,但是当它停靠时它会继续隐藏边框。

UINT style = WS_CHILD | CBRS_LEFT | CBRS_FLOAT_MULTI | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_ANY;
DWORD dwTabbedStyle = AFX_CBRS_REGULAR_TABS | CBRS_BORDER_ANY;
DWORD dwControlBarStyle = AFX_DEFAULT_DOCKING_PANE_STYLE | CBRS_BORDER_ANY ;

dock_paneTop->Create(strTitle, this, CRect(0, 0, 200, 400), TRUE, ID_VIEW_PANETOP,style, dwTabbedStyle, dwControlBarStyle);

有没有办法让边框或一些视觉线显示两个窗口正在分割的区域。

在此处输入图像描述

编辑:使用视觉管理器后,例如使用 MS Office 2007 样式,将添加边框:

在此处输入图像描述

标签: c++windowswinapimfcdocking

解决方案


您可以创建自己的 PaneDivider 类(派生自 CPaneDivider)并自定义其视觉效果。或者更容易实现:如果您使用功能包,您可以创建自定义 VisualManager 类(派生自 CMFCVisualManagerOffice2007)。

如果其中一种方法可以满足您的要求,我可以给您更多提示。请告诉我。


推荐阅读