在 MFC 中,CMFCCaptionBar::OnDrawButton 是 CMFCCaptionBar 类的一个受保护方法,用于绘制标题栏按钮的外观。通过重写这个方法,你可以自定义标题栏按钮的绘制效果。

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

protected:
    virtual void OnDrawButton(CDC* pDC, CMFCCaptionBar::ButtonState state, CRect rect)
    {
        // 在这里自定义标题栏按钮的绘制
        switch (state)
        {
        case CMFCCaptionBar::ButtonsStateRegular:
            // 绘制正常状态的按钮外观
            pDC->FillSolidRect(rect, RGB(0, 120, 215)); // 例:蓝色按钮
            break;
        
        case CMFCCaptionBar::ButtonsStatePressed:
            // 绘制按下状态的按钮外观
            pDC->FillSolidRect(rect, RGB(0, 80, 175)); // 例:深蓝色按钮
            break;

        case CMFCCaptionBar::ButtonsStateHighlighted:
            // 绘制高亮状态的按钮外观
            pDC->FillSolidRect(rect, RGB(0, 160, 255)); // 例:亮蓝色按钮
            break;

        default:
            break;
        }
    }
};

在这个例子中,创建了一个名为 CMyCaptionBar 的类,该类继承自 CMFCCaptionBar。在这个派生类中,重写了 OnDrawButton 方法,根据按钮的不同状态(正常、按下、高亮)绘制不同颜色的按钮外观。

你可以根据具体的 UI 设计和需求进行更复杂的按钮绘制,包括使用不同的填充效果、图像等。这个方法允许你灵活地定制标题栏按钮的外观。


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