如何在浮动状态下隐藏 CDockablePane 中的标题栏?

Posted

技术标签:

【中文标题】如何在浮动状态下隐藏 CDockablePane 中的标题栏?【英文标题】:How to hide a title bar in CDockablePane in float state? 【发布时间】:2017-06-22 03:16:06 【问题描述】:
virtual int GetCaptionHeight() const return 0; 

我用这个可以在停靠状态下隐藏标题栏,但是当它浮动时,标题是存在的。

【问题讨论】:

【参考方案1】:

只有在不浮动时才从窗格中绘制标题。只需查看GetCaptionHeight 的默认实现!

窗格在浮动时位于CPaneFrameWnd 内。

AFAIK 你必须控制外框窗口。它由CreateDefaultMiniframe 创建。它通常应该创建一个CPaneFrameWnd

从默认的迷你框架类派生您自己的类。 (应该是CPaneFrameWnd,但最好重新检查一下)。有一个虚函数CPaneFrameWnd::GetCaptionRect

在您的 CDockablePane 类中使用 SetMiniFrameRTC 来设置这个新的类框架以用于您的窗格。

【讨论】:

我做了上面的步骤(DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE 需要修改为 DECLARE_SERIAL/IMPLEMENT_SERIAL),并且我覆盖了 void CSkinPaneFrameWnd::GetCaptionRect(CRect& rectCaption) const rectCaption = CRect(0, 0, 0 , 0); 但标题位置显示为黑色矩形。 嗯。调试。谁在调用 GetCaptionRect?如何评估? 谢谢你的回答,我发现它是在绘制标题时调用的,我很难做更多的研究。 在我的情况下,如果您返回的标题 rect 是空的,那么我看不到任何绘图都已完成。

以上是关于如何在浮动状态下隐藏 CDockablePane 中的标题栏?的主要内容,如果未能解决你的问题,请参考以下文章

获取 MFC CDockablePane 停靠的停靠区域

如何将停靠在选项卡中的 CDockablePane 带到前面

MFC DockablePane 不浮动或隐藏

如何在滚动视图中隐藏和取消隐藏 UiViews 中的浮动按钮?

如何在键盘打开时隐藏浮动按钮(Android/iOS)?

MFC中的工具栏隐藏与显示问题。