虚拟CListCtrl和图标的奇怪行为[英] Weird behaviour with Virtual CListCtrl and icons

本文是小编为大家收集整理的关于虚拟CListCtrl和图标的奇怪行为的处理方法,想解了虚拟CListCtrl和图标的奇怪行为的问题怎么解决?虚拟CListCtrl和图标的奇怪行为问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有一个处理 LVN_GETDISPINFO 的虚拟 CListCtrl,m_Infobox.它有 1 列,没有列标题.
它有一个图像列表:

m_VirtualImageList.Create(16, 16, ILC_COLOR32 | ILC_MASK, 1,1);
m_Infobox.SetImageList(&(m_imagelistUtil.m_VirtualImageList), LVSIL_SMALL);

在 OnGetdispinfo 我处理列表需要文本时
if (pItem->mask & LVIF_TEXT) {
  lstrcpyn(pItem->pszText, m_csColumn1, pItem->cchTextMax);
}

这很好用.但是当我添加对图标的处理时,事情就开始出错了.
if( pItem->mask & LVIF_IMAGE) {
  HICON hIcon = reinterpret_cast<HICON>(::LoadImage ( AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_COPY),IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR));
  m_imagelistUtil.m_VirtualImageList.Replace(0,hIcon);
  pItem->iImage = 0;
}

当我开始工作并在处理文件时添加行时,前几百行工作正常,然后列表要么变为空白,要么开始在整个对话框中绘制其行,而不仅仅是在 listctrl 中.
仅当我尝试在每一行上插入图标时才会发生这种情况.
在上面的示例中,我尝试对所有行使用相同的图标,但无论从哪里获取图标(资源、其他图像列表、系统图像列表),行为都是相同的.

在使用图标方面有什么我不明白的地方吗?

我已经在网上搜索并尝试了我能想到的一切,但我没有想法.

感谢所有建议.

最好的问候,
Urban Dahlberg

推荐答案

看看这篇文章的基本用法:
使用列表控件[^]

并在 CP 中查看专用于 CListCtrl 的部分:
http://www.codeproject.com/KB/list/[^]

那里有很多样品,我相信一个或另一个会对你有所帮助.

祝你好运!

本文地址:https://www.itbaoku.cn/post/1356098.html

相关标签/搜索