// in hpp
class TForm1 : public TForm
{
__published:
TTrackBar *TrackBar;
private:
MESSAGE void __fastcall WMNotify(TMessage& Msg);
public:
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(
WM_NOTIFY, TMessage, WMNotify)
END_MESSAGE_MAP(TForm)
};
// in cpp
void __fastcall TForm1::WMNotify(TMessage& Msg)
{
// получаем указатель на NMHDR struct
LPNMHDR pnmh = reinterpret_cast
<LPNMHDR>(Msg.LParam);
// если поле code равно NM_CUSTOMDRAW and
// поле from есть наша trackbar
if (pnmh->code == NM_CUSTOMDRAW && pnmh->hwndFrom==TrackBar->Handle)
{
//
// рисуем...
// NMHDR - смотри в MSDN
// а вообще Я наверно не прав, легче взять CGauge
return;
}
// обработчик по умолчанию...
TForm::Dispatch(&Msg);
}
Цвет заливки ProgressBar?
Подскажите, есть ли возможность изменить его?
Цитата:
Originally posted by Забияка
Подскажите, есть ли возможность изменить его?
Подскажите, есть ли возможность изменить его?
Можно поменять фон. Если нужно менять цвет переднего плана - используй CGauge.
Цитата:
Originally posted by Забияка
Подскажите, есть ли возможность изменить его?
Подскажите, есть ли возможность изменить его?
Нет. Используй TrackBar + NM_CUSTOMDRAW.
Цитата:
Originally posted by GIZMO
Нет. Используй TrackBar + NM_CUSTOMDRAW.
Нет. Используй TrackBar + NM_CUSTOMDRAW.
Хм, вот как?
А поподробнее можно, пожалуйста?
Цитата:
Originally posted by Забияка
Хм, вот как?
А поподробнее можно, пожалуйста?
Хм, вот как?
А поподробнее можно, пожалуйста?
Код:
Спасибо!
Цитата:
Originally posted by Забияка
Спасибо!
Спасибо!
PostMessage(ProgressBar1->Handle,0x0409,0,clRed);
Цитата:
Originally posted by Noer
PostMessage(ProgressBar1->Handle,0x0409,0,clRed);
PostMessage(ProgressBar1->Handle,0x0409,0,clRed);
Если программа в XP стиле, то это не работает. А жаль.=(