在CListView中,当出现Item改变事件时,如何对它进行控制?
  也就是说,如何当某个被选中Item要失去选中时,我根据条件判断,如果新的Item不能让它选中,我就提示该行不能被选,以前被选中的仍然选中。
  而且不能提示多次!
  比如:
  我选中ITEM1,现在要选中ITEM2,可是对ITEM1的操作还没完,我就提示,不能选中ITEM2,而且让ITEM1继续被选中,提示不能有多次,该怎么做呢?

解决方案 »

  1.   

    对啊就是处理LVN_ITEMCHAGED消息,但是这个消息要被触发三次
    NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    ypedef struct tagNMLISTVIEW
    {
        NMHDR   hdr;
        int     iItem;
        int     iSubItem;
        UINT    uNewState;
        UINT    uOldState;
        UINT    uChanged;
        POINT   ptAction;
        LPARAM  lParam;
    } NMLISTVIEW, *LPNMLISTVIEW;
    我现在的想法是:怎么样在iItem没改变的时候就让该消息不再触发了
    或则,到了其他ITEM项以后再回到原来ITEM项(但这也要除法LVN_ITEMCHAGED消息)
    该怎么弄呢?感觉很麻烦