我写了以下代码,大家看看为什么不能实现所要的功能:
LRESULT CALLBACK ListViewProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{ switch (msg)
{
case WM_NOTIFY:
LPNMHDR mhdr;
mhdr=(LPNMHDR) lParam;
switch(mhdr->code)
{
case NM_CUSTOMDRAW:
LPNMLVCUSTOMDRAW pds;
pds=(LPNMLVCUSTOMDRAW)lParam;
switch(pds->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
return CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
//以下两行代码,为什么不起作用?
pds->clrText=RGB(255, 0, 0);
pds->clrTextBk=RGB(255, 255, 255);
return CDRF_NEWFONT;
break;
}
break;
}
break;
default:
return CallWindowProc((WNDPROC)oldListProc,hWnd,msg,wParam,lParam);
}
return 0;
}
LRESULT CALLBACK ListViewProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{ switch (msg)
{
case WM_NOTIFY:
LPNMHDR mhdr;
mhdr=(LPNMHDR) lParam;
switch(mhdr->code)
{
case NM_CUSTOMDRAW:
LPNMLVCUSTOMDRAW pds;
pds=(LPNMLVCUSTOMDRAW)lParam;
switch(pds->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
return CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
//以下两行代码,为什么不起作用?
pds->clrText=RGB(255, 0, 0);
pds->clrTextBk=RGB(255, 255, 255);
return CDRF_NEWFONT;
break;
}
break;
}
break;
default:
return CallWindowProc((WNDPROC)oldListProc,hWnd,msg,wParam,lParam);
}
return 0;
}
里面采用的方法同MSDN上的方法是一样的,我的方法也是依照MSDN来做的,但不知怎么回事,我的就是实现不了!我调试过了,代码也是执行了的
但没有起作用,我都快发疯了!