求一份示例代码或者帮我看看目前代码存在的问题,在WINSDK下,自画ListCtrl的。

combread 2006-11-24 11:25:59
就是需要对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;
}
}
...全文
141 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodboyws 2006-11-24
  • 打赏
  • 举报
回复
可能是返回值的问题,用
SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) 设定返回值
mynamelj 2006-11-24
  • 打赏
  • 举报
回复
哪个消息得不到?
yjgx007 2006-11-24
  • 打赏
  • 举报
回复
光看这个函数看不出什么,这仅仅是一个customdraw消息函数,还得看源码.
guileen 2006-11-24
  • 打赏
  • 举报
回复
耶!!沙发 楼主我支持你 ----------------- 松自萧萧云自飘 风中独酌亦逍遥 抚却凡愁与尘念 琴韵未解恨已销

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧