Статья: Реализация стиля Office XP
r = GetRValue(shdw)+10;
g = GetGValue(shdw)+10;
b = GetBValue(shdw)+10;
shdw = PALETTERGB(r,g,b);
CPen pen;
pen.CreatePen(0, 1, shdw);
// Заливаем область
dc.FillSolidRect(rt, face);
dc.SelectObject(&pen);
// Перебираем все бары
for(UINT i = 0; i != GetReBarCtrl().GetBandCount(); i++)
{
GetReBarCtrl().GetRect(i, rBand);// Получаемрект
for(int y = 4; y != rBand.Height()-4; y+=2)// Ресуемсимпатичнуюзакраску
{
dc.MoveTo(rBand.left+3,rBand.top+y);
dc.LineTo(rBand.left+6,rBand.top+y);
}
}
// Do not call CReBar::OnPaint() for painting messages
}
Всё! Теперь только меняем тип ReBar на CReBarXP(обязательно вставив перед объявлением класса include-команду).
StatusBarXP
Так, так... ToolBarXP и ReBarXP есть. Теперь StatusBar'ом займёмся. Проект как создавать я писать не буду, сразу переходим к делу.
Добавляем новый класс CStatusBarXP, наследованный от CStatusBar. В нём переопределяем OnPaint и пишим тудыва:
void CStatusBarXP::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rt, rPane;