2003. 6. 19. 20:43
// 0. ListControl을 상속한 클래스의 헤더파일에 다음과 같은 함수를 선언해 줍니다.



afx_msg void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);



// 1. ListControl을 상속한 클래스 CPP파일의  메세지 맵에 다음과 같이 적어줍니다.

ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)



// 2. 메시지 처리함수를 다음과 같이 만듭니다.

void CMyListControl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)

{

LPNMLVCUSTOMDRAW  lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;



int iRow;

switch(lplvcd->nmcd.dwDrawStage)

{

case CDDS_PREPAINT:

     *pResult = CDRF_NOTIFYITEMDRAW;      

     break;

case CDDS_ITEMPREPAINT:

     *pResult = CDRF_DODEFAULT;

     iRow = lplvcd->nmcd.dwItemSpec;

     lplvcd->clrTextBk = RGB(220, 220, 220);

     lplvcd->clrText = RGB(0, 0, 0);

     break;

default:

     *pResult = CDRF_DODEFAULT;

}

}



// 3. 코드 중간에 보이는 iRow의 값은 현재 그릴 Row의 숫자이고, 그 아랫줄의

// RGB 를 편집하면, 각 Row 마다 각각 다른 글자색과 배경색을 가지고 ListControl을

// 만들수 있습니다.