OnCustomdrawList()函数使自己手动添加的,还是消息相应生成的函数,我自己添加消息响应,只是OnNMCustomdraw()函数,
有一些地方看到这种ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, &CNewList::OnCustomdrawList)写法,也看到 ON_NOTIFY(NM_CUSTOMDRAW,   IDC_LIST_Your,   OnCustomdrawList)这样的写法,不知道有什么区别,谢谢

解决方案 »

  1.   

    都差不多了,
    说白了,都是把函数指针记下来,然后到时候回调,第一种写法记录成员函数指针,到时候比如用如下的形式回调:
    (object->*func)(...);第二种也差不多,。
      

  2.   

    函数名是无所谓的,关键是要函数签名正确,ON_NOTIFY_REFLECT为控件本身处理反射消息,ON_NOTIFY为控件的父窗口处理控件的NOTIFY通知消息。
      

  3.   

    我自己添加的消息响应函数就是OnNMCustomdraw(),这里的参数是pNMCD,而它好像没有clrText的参数,那么我如何改变List控件中字的颜色呢,而OnNMCustomdraw()中的NMLVCUSTOMDRAW *pLVCD似乎可以,可是这个函数我不知道是自己手动添加还是自动的消息响应函数,所以想问问,
    还有ON_NOTIFY_REFLECT和ON_NOTIFY的区别我还是不太懂
      

  4.   

    CWnd类中定义了一些虚函数来响应固定的消息,对于这类消息,可以通过重载虚函数来响应,也可以利用消息映射宏来响应,利用消息映射宏来响应的时候函数名可以自定义。
    ON_NOTIFY_REFLECT是映射反射消息,例如NM_CUSTOMDRAW,是控件发给其父窗口的,可以在其父窗口通过ON_NOTIFY宏来响应,如果控件类本身要响应这个消息,就要用ON_NOTIFY_REFLECT宏来反射消息。