Статья: Реализация стиля Office XP
// Рисуемрамку
dc.Rectangle(rItem);
// Рисуемиконкукнопки
GetToolBarCtrl().GetImageList()->Draw(&dc, n, CPoint(x+2, 2), 0);
x += BtnLenght;
n++;
}
else if(!btn.fsStyle & TBSTYLE_SEP)// Кнопкавобычномсостоянии
{
GetToolBarCtrl().GetImageList()->Draw(&dc, n, CPoint(x+3, 3), 0);
x += BtnLenght;
n++;
}
}
// Do not call CToolBarCtrl::OnPaint() for painting messages
}
Так, сразу пока не отвлёкся - в класс надо добавить переменную:
class CToolBarXP : public CToolBarCtrl
{
//***********************************************
protected:
int m_nSelected;// Номер кнопки под мышкой :-)
//{{AFX_MSG(CToolBarXP)
afx_msg void OnPaint();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
В конструкторе класса надо надо инициализировать сию переменную числом -1.
Теперь добавляем через КлассВизард обработку перемещений мышкой: