大家看一下,为什么我一直只收到 CDDS_PREPAINT, 收不到CDDS_ITEMPREPAINT 呢?
case WM_NOTIFY:
{
LPNMHDR lpHdr = (LPNMHDR)lParam; switch (lpHdr->idFrom)
{
case IDTRACK1:
{
if (lpHdr->code == NM_CUSTOMDRAW)
{
LPNMCUSTOMDRAW lpCustomDraw = (LPNMCUSTOMDRAW)lParam; switch (lpCustomDraw->dwDrawStage)
{

case CDDS_PREPAINT:
MessageBox(NULL, TEXT("CDDS_PREPAINT"), TEXT("NOTE"), MB_OK);
return CDRF_NOTIFYITEMDRAW;
                        
case CDDS_ITEMPREPAINT:
MessageBox(NULL, TEXT("CDDS_ITEMPREPAINT"), TEXT("NOTE"), MB_OK);
return CDRF_DODEFAULT;
                                                default:
                                                        return TRUE;
}
}
                               case IDTRACK2:
                                    ............................
}

解决方案 »

  1.   

    我看了一篇,《Visual C++2005中开发自定义绘图控件》,你搜一下。
    感觉问题出在这一点代码应该出现在控件的消息(NM_CUSTOMDRAW)响应中,而不是在父窗口。
    switch (lpCustomDraw->dwDrawStage)
    {case CDDS_PREPAINT:
    MessageBox(NULL, TEXT("CDDS_PREPAINT"), TEXT("NOTE"), MB_OK);
    return CDRF_NOTIFYITEMDRAW;
        
    case CDDS_ITEMPREPAINT:
    MessageBox(NULL, TEXT("CDDS_ITEMPREPAINT"), TEXT("NOTE"), MB_OK);
    return CDRF_DODEFAULT;
      default:
      return TRUE;
    }
      

  2.   

    http://topic.csdn.net/u/20070910/14/928362f5-1216-46e8-8eaf-34f6941715e1.html
    看这个帖子