CListCtrl带有CheckBox,我想让CheckBox在选中的时候执行一个操作,应该怎么办?十万火急!!!

解决方案 »

  1.   

    没有专门的消息,要做的话,响应mouse click消息,然后检查各个CheckBox。
      

  2.   

    //消息映射
    BEGIN_MESSAGE_MAP(CInfoDownloadService, CPropertyPage)
    //{{AFX_MSG_MAP(CInfoDownloadService)
    ON_NOTIFY(HDN_ITEMCHANGED, IDC_LIST_TASK, OnItemchangedListTask)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()//声明
    afx_msg void OnItemchangedListTask(NMHDR* pNMHDR, LRESULT* pResult);实现
    void CDialog1::OnItemchangedListTask(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;  NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
      if(pNMListView->iItem>=0)
      {
    if(m_list.GetCheck(pNMListView->iItem)){
    //被选中
    }else{                  }
      }
    *pResult = 0;
    }
      

  3.   

    HDN_ITEMCHANGED消息不是这个意思,是listctrl在report状态下的列的标题头的消息。
      

  4.   

    在HDN_ITEMCHANGED中判断是不行的,我刚试过了,它不是响应checkbox事件
      

  5.   

    只能响应NM_CLICK,然后检查各个checkbox。
      

  6.   

    感谢Crob(我干这么帅~~~)提供的代码,可是似乎还是不行
    请问pcman1990:
    怎么检查各个checkbox的状态?
      

  7.   

    好像NM_CLICK只能相应鼠标在CListCtrl中的单击事件啊?
      

  8.   

    搞定
    pcman1990说的对
    谢谢各位指点
      

  9.   

    问题是响应发生在check状态改变之前,而我需要改变后的check状态,该怎么办?