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

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

【问题讨论】:

    标签: c++ windows mfc dock


    【解决方案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 是空的,那么我看不到任何绘图都已完成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    相关资源
    最近更新 更多