Статья: Реализация стиля Office XP
{
CToolBar::OnMouseMove(nFlags, point);
CRect rt;
TBBUTTON btn;
// Перебираемкнопки
for(int i = 0; i != GetToolBarCtrl().GetButtonCount(); i++)
{
GetToolBarCtrl().GetButton(i, &btn);// Получаемданныеокнопке
GetItemRect(i, rt);// Получаем рект кнопки
if(btn.fsStyle & TBSTYLE_SEP) continue;// Сепараторы пропускаем
if(rt.PtInRect(point) && m_nSelected != i)// Мышканадэтой?
{
m_nSelected = i;// Сохраняемвыделение
Invalidate();// Перерисовываем
SetTimer(11, 100, NULL);// Пускаемтаймер
return;
}
}
}
Так... Ну и, собственно таймер:
void CToolBarXP::OnTimer(UINT nIDEvent)
{
if(nIDEvent == 11)// На всякий пожарный
{
// Так где же мышка ???
CPoint p(GetMessagePos());
ScreenToClient(&p);
// Берёмграницыкнопки
CRect rect;