CListCtrl und Mouseoverefekt
-
hoi ich würde gerne in meine CListCtrl einen mouseoverefekt machen, das klappt mit
m_Liste_.SetExtendedStyle(LVS_EX_FULLROWSELECT| LVS_EX_ONECLICKACTIVATE);jedoch wird da der Text nur blau gezeichnet. ich möchte aber das der hintergrund grau gezeichnet wird ... hat da wer evl ne idee? komme da irgendwie net weiter und die Zeichenroutiene neuschreiben will ich das ganze nur wenns net anders geht.
-
*schieb*

-
Leite Dir doch eine Klasse von CListCtrl ab und checke darin die CustomDraw Nachrichten. Dort holst Du Dir den CDDS_ITEMPREPAINT Draw-Stage und checkst die uItemState auf CDIS_HOT:
void CMyListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR ); *pResult = 0; switch (pLVCD->nmcd.dwDrawStage) { case CDDS_PREPAINT: // Wir wollen eine ITEMPREPAINT Nachricht also: *pResult = CDRF_NOTIFYITEMDRAW; break; case CDDS_ITEMPREPAINT: { if((pLVCD->nmcd.uItemState & CDIS_HOT) == CDIS_HOT) { pLVCD->clrText = RGB(0,0,0); // Deine Textfarbe pLVCD->clrTextBk = RGB(240, 240, 240); // Deine Hintergrundfarbe } *pResult = CDRF_DODEFAULT; break; } default: *pResult = CDRF_DODEFAULT; break; } }Gruß T.

-
100000000 Dank:)