Application/MFC
[MFC] CListCtrl 배경색 & 글자색 변경
devsalix
2023. 2. 9. 17:00
728x90
CListCtrl 컨트롤의 배경색 혹은 글자색을 변경하려면
컨트롤의 이벤트에서 NM_CUSTOMDRAW 를 추가한 후
해당 함수 내 소스를 변경하면 쉽게 처리가 가능합니다
특정 칼럼의 값에 따라 변경 하고 싶다면
void CWinshieldManagerDlg::OnNMCustomdrawList1(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVCUSTOMDRAW* pLVCD = (NMLVCUSTOMDRAW*)pNMHDR;
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
*pResult = 0;
WCHAR szValue[MAX_PATH];
switch(pLVCD->nmcd.dwDrawStage)
{
case CDDS_ITEMPREPAINT:
m_ListCtrlClient.GetItemText((int)pLVCD->nmcd.dwItemSpec, 0, szValue, sizeof(szValue));
if(wcscmp(szValue, _T("1")) == 0)
{
//빨간색
if(pLVCD->clrTextBk != RGB(255, 0, 0))
{
pLVCD->clrTextBk = RGB(255, 0, 0);
}
}
else if(wcscmp(szValue, _T("2")) == 0)
{
//녹색
if(pLVCD->clrTextBk != RGB(0, 255, 0))
{
pLVCD->clrTextBk = RGB(0, 255, 0);
}
}
else
{
//파란색
if(pLVCD->clrTextBk != RGB(0, 0, 255))
{
pLVCD->clrTextBk = RGB(0, 0, 255);
}
}
break;
default:
break;
}
}
위와 같이 작성하면 컬럼의 첫 번째 값에 따라 해당 셀의 배경색이 변경됩니다
제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀
728x90
반응형