CListCtrl .. mettre de la couleur une ligne sur 2 ?

CListCtrl .. mettre de la couleur une ligne sur 2 ? - Programmation

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 ?

Reply

Marsh Posté le 01-09-2001 à 16:47:57   

Reply

Marsh Posté le 01-09-2001 à 16:52:12    

Pardonne mon ignorance mais c'est quoi comme langage ?

Reply

Marsh Posté le 01-09-2001 à 17:16:03    

escusi mi !!!!
 
Visual C++ - MFC

Reply

Marsh Posté le 01-09-2001 à 17:16:30    

désolé je ne connais pas ! :hello:

Reply

Marsh Posté le 01-09-2001 à 17:17:05    

pas grave .. merci qu'en meme :)

Reply

Marsh Posté le 01-09-2001 à 18:08:12    

help !! c un cri du coeur !

Reply

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
 :hello:

Reply

Marsh Posté le 01-09-2001 à 18:40:16    

au pire, faire le OnPaint() à la main ... :)

Reply

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;
 }
}

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed