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