CListCtrl .. mettre de la couleur une ligne sur 2 ? - Programmation
Marsh Posté le 01-09-2001 à 18:11:56
je réponds à ton crie du coeur !
Va sur ce sîtes:
www.cppfrance.com
peut-être que tu y trouveras ton bonheur, je sais pas,essaye...
macray
Marsh Posté le 01-09-2001 à 21:44:34
la solution :
header:
class CCustListCtrl : public CListCtrl
{
public:
CCustListCtrl();
//{{AFX_VIRTUAL(CCustListCtrl)
//}}AFX_VIRTUAL
virtual ~CCustListCtrl();
protected:
//{{AFX_MSG(CCustListCtrl)
afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
cpp:
CCustListCtrl::CCustListCtrl()
{
}
CCustListCtrl::~CCustListCtrl()
{
}
BEGIN_MESSAGE_MAP(CCustListCtrl, CListCtrl)
//{{AFX_MSG_MAP(CCustListCtrl)
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// CCustListCtrl message handlers
void CCustListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
switch(lplvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
if(lplvcd->nmcd.dwItemSpec % 2)
{
lplvcd->clrText = RGB(128, 30, 30);
lplvcd->clrTextBk = RGB(255,255,220);
}
else{
lplvcd->clrText = RGB(0, 0, 0);
lplvcd->clrTextBk = RGB(230,230,230);
}
*pResult = CDRF_DODEFAULT;
break;
}
}
Marsh Posté le 01-09-2001 à 16:47:57
bonjour .. je voudrais savoir qu'elle etait l'astuce pour mettre de la couleur un ligne sur 2 dans un CListCtrl ?