就是需要对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;            
    }
}