【问题标题】:C++ ListControl - Icon positionC++ ListControl - 图标位置
【发布时间】:2016-03-13 20:38:31
【问题描述】:

当我使用“SetIconSpacing”命令时,第一个图标没有放在它应该放在的位置 - 有什么想法吗? (当我不使用 SetIconSpacing 时,它们被均匀描绘)

代码:

VZ_Liste.SetIconSpacing(CSize (100,100)); 
verkehrs_icons.Create(64,64,ILC_COLOR32,29,0); 
CString strItem = _T("");
for (int i = 0; i<29; i++) 
{
  verkehrs_icons.Add(AfxGetApp()->LoadIcon(IDI_ICON1 + i)); 
  VZ_Liste.InsertItem(i, strItem, i);
}
VZ_Liste.SetImageList(&verkehrs_icons, LVSIL_NORMAL);

当前的错误行为:

【问题讨论】:

  • 如果将一些文本分配给strItem,会发生什么? CString strItem = _T("not empty");
  • 还有一件事:在循环之前移动SetImageList。您在设置图像列表之前设置项目的图像。
  • 如果我指定它在每个图标下方写“非空”的文本
  • 在循环之前移动 setimagelist 是解决方案!唯一的问题是,图标的背景现在是黑色的 - 有什么想法吗?
  • 没关系,我找到了问题 - 非常感谢您的帮助! :)

标签: c++ mfc position icons listcontrol


【解决方案1】:

在设置图像列表之前,您正在使用图像索引。正确的顺序是:

VZ_Liste.SetImageList(&verkehrs_icons, LVSIL_NORMAL); // FIRST!
for (int i = 0; i<29; i++) 
{
  verkehrs_icons.Add(AfxGetApp()->LoadIcon(IDI_ICON1 + i)); 
  VZ_Liste.InsertItem(i, strItem, i);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 2021-11-22
    • 2013-01-23
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多