在 MFC 中,CMFCCaptionButton::OnDraw 是 CMFCCaptionButton 类的一个公共方法。该方法用于绘制标题栏按钮的外观。通过重写这个方法,你可以自定义按钮的绘制效果。

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

protected:
    virtual void OnDraw(CDC* pDC, const CRect& rect, CMFCCaptionButton::ButtonState state)
    {
        // 在这里自定义按钮的绘制
        switch (state)
        {
        case CMFCCaptionButton::ButtonsStateRegular:
            // 绘制正常状态的按钮外观
            pDC->FillSolidRect(rect, RGB(0, 120, 215)); // 例:蓝色按钮
            break;

        case CMFCCaptionButton::ButtonsStatePressed:
            // 绘制按下状态的按钮外观
            pDC->FillSolidRect(rect, RGB(0, 80, 175)); // 例:深蓝色按钮
            break;

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

        default:
            break;
        }
    }
};

在这个例子中,创建了一个名为 CMyCaptionButton 的类,该类继承自 CMFCCaptionButton。在这个派生类中,重写了 OnDraw 方法,根据按钮的不同状态绘制不同颜色的按钮外观。

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


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