以下是一个简单的示例,演示如何在派生类中重写 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