在 MFC 中,CMFCCaptionBar::OnDrawBorder 是 CMFCCaptionBar 类的一个受保护方法,用于绘制标题栏的边框。你可以在该方法中自定义标题栏边框的绘制。

以下是一个简单的示例,演示如何在派生类中重写 OnDrawBorder 方法:
class CMyCaptionBar : public CMFCCaptionBar
{
public:
    // 构造函数、析构函数等

protected:
    virtual void OnDrawBorder(CDC* pDC, CRect rect, BOOL bActive)
    {
        // 在这里自定义标题栏的边框绘制
        CPen penBorder;
        if (bActive)
        {
            // 活动状态的标题栏边框颜色
            penBorder.Create(PS_SOLID, 1, RGB(0, 120, 215)); // 例:蓝色边框
        }
        else
        {
            // 非活动状态的标题栏边框颜色
            penBorder.Create(PS_SOLID, 1, RGB(192, 192, 192)); // 例:灰色边框
        }

        CPen* pOldPen = pDC->SelectObject(&penBorder);
        pDC->Rectangle(rect);

        // 恢复原始的画笔对象
        pDC->SelectObject(pOldPen);
    }
};

在这个例子中,创建了一个名为 CMyCaptionBar 的类,该类继承自 CMFCCaptionBar。在这个派生类中,重写了 OnDrawBorder 方法,根据标题栏的活动状态绘制不同颜色的边框。

你可以根据具体的 UI 设计和需求进行更复杂的边框绘制,包括使用不同的画笔风格、线型等。这个方法允许你灵活地定制标题栏的外观。


转载请注明出处:http://www.pingtaimeng.com/article/detail/19139/MFC/CMFCCaptionBar