遇到一个比较奇怪的问题,debug 版本里运行没任何问题,release 就不行。情况,在OnTimer(UINT nIDEvent)函数中调用SetItem函数改变显示的图标不生效。具体调用的代码LVITEM lvItem;
lvItem.mask = LVIF_IMAGE;
lvItem.iItem = m_curItem;
lvItem.iImage = 1;
m_locResultList.SetItem(&lvItem);原来显示的图标id是0,我想把他改成显示1,注:此段代码只在release 版本的 OnTimer(UINT nIDEvent)里调用就是不生效。
在release版本的其它函数中调用没问题的。
可能和定时器有一定关系。在定时器中我还调用了 m_locResultList.EnsureVisible(m_curItem,true);
这个是生效的。

解决方案 »

  1.   

    确实比较怪哦换SetItem的另外两个重载函数试试
    BOOL SetItem(
       int nItem,
       int nSubItem,
       UINT nMask,
       LPCTSTR lpszItem,
       int nImage,
       UINT nState,
       UINT nStateMask,
       LPARAM lParam 
    );
      

  2.   

    调用一下m_locResultList.InvalidateRect(NULL);UpdateWindow();看看
      

  3.   

    试了一下
    m_locResultList.InvalidateRect(NULL);UpdateWindow(); 
    不行,
    至于另另外一个重载函数,我觉的肯定还是那样的,最终的实现是一样的。
    关键不在函数的本身。
    OnTimer(UINT nIDEvent)
    函数里的功能都是实现的,只是好像不重画一下,
    但我调了m_locResultList.EnsureVisible(m_curItem,true);
    按理说也已经重画了。
    谢谢楼上两位关注!