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