求一份示例代码或者帮我看看目前代码存在的问题,在WINSDK下,自画ListCtrl的。
就是需要对ListItem进行自定义绘制,
由图标+多行不同格式文字组成一个Item。类似于控制面板里的添加删除程序的那个list.
我手头有一份正确的MFC代码,但是转过到WIN32代码的时候,有个消息总是得不到。
void CScreenMachineList::OnNMCustomdrawList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
// TODO: Add your control notification handler code here
*pResult = CDRF_NOTIFYITEMDRAW;
switch (pNMCD->dwDrawStage)
{
//一直都只能到这里了
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
//以下的这些都执行不到
case CDDS_ITEMPREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW | CDRF_NOTIFYPOSTPAINT;
break;
case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
*pResult = CDRF_SKIPDEFAULT;
break;
case CDDS_ITEMPOSTPAINT:
*pResult = CDRF_SKIPDEFAULT;
//DrawUserItem(pNMCD->dwItemSpec, pNMCD->hdc);
break;
}
}