BOOL CListCtrl::SetItem( const LVITEM* pItem );的怪问题。

mishuilin 2006-11-23 10:17:50
遇到一个比较奇怪的问题,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);
这个是生效的。
...全文
179 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mishuilin 2006-11-24
  • 打赏
  • 举报
回复
试了一下
m_locResultList.InvalidateRect(NULL);UpdateWindow();
不行,
至于另另外一个重载函数,我觉的肯定还是那样的,最终的实现是一样的。
关键不在函数的本身。
OnTimer(UINT nIDEvent)
函数里的功能都是实现的,只是好像不重画一下,
但我调了m_locResultList.EnsureVisible(m_curItem,true);
按理说也已经重画了。
谢谢楼上两位关注!
Stefine 2006-11-23
  • 打赏
  • 举报
回复
确实比较怪哦

换SetItem的另外两个重载函数试试
BOOL SetItem(
int nItem,
int nSubItem,
UINT nMask,
LPCTSTR lpszItem,
int nImage,
UINT nState,
UINT nStateMask,
LPARAM lParam
);
dawnwinds 2006-11-23
  • 打赏
  • 举报
回复
调用一下m_locResultList.InvalidateRect(NULL);UpdateWindow();看看

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧