我现在想在一个基于ListView的视图类(Report样式)列头加一个小图标,点一下这个图标响应一个事件,然后再点击一下响应一个相反的事件,图标变成另外一个图标,我有列头加checkbox的示例,而且checkbox打√或者不打√不能及时响应,谁做个这种类似的功能麻烦指教一下,或者有没有什么示例小程序的......

解决方案 »

  1.   

    http://www.codeproject.com/KB/miscctrl/gridctrl.aspx
    gridctrl是最佳选择!
    楼主自己下载,有例子,开源!
      

  2.   

    响应LVN_COLUMNCLICK消息,然后消息处理函数中用GetItem()函数获取到LPNMLISTVIEW结构体.
    修改这个结构体的iImage成员,再用SetItem()更改属性.void CMFCDlg::OnLvnColumnclickList1(NMHDR *pNMHDR, LRESULT *pResult)
    {
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
    HDITEM hdi = {0};
    hdi.mask = HDI_IMAGE; //只获取Image属性
    CListCtrl* lv = (CListCtrl*)GetDlgItem(IDC_LIST1); lv->GetHeaderCtrl()->GetItem(pNMLV->iSubItem, &hdi);
    hdi.iImage = 0; //更改图标 lv->GetHeaderCtrl()->SetItem(pNMLV->iSubItem, &hdi); 
    *pResult = 0;
    }