在使用CListCtrl时,切换到LVIS_ICON方式下,用到了如下方法设置icon的大小: static CImageList m_ilThumbNail;
m_ilThumbNail.Create(100, 75, ILC_COLOR, 1, 1);
GetListCtrl().SetImageList(&m_ilThumbNail, LVSIL_NORMAL);
但是icon和label的宽度不相等,请问有什么方法解决。

解决方案 »

  1.   

    是这样的,我在OnCustomDraw的CDDS_ITEMPREPAINT中使用下述几句:int nItem = pNCD->nmcd.dwItemSpec;
    GetItemRect(nItem, rtitem, LVIR_BOUNDS);//得到最外边的包络矩形
    GetItemRect(nItem, rtitem, LVIR_ICON);//宽度比LVIR_BOUNDS方式下小
    GetItemRect(nItem, rtitem, LVIR_LABEL);//宽度和LVIR_BOUNDS方式一样(有LVS_OWNERDATA)
      //或者由自己的字串长度决定(无LVS_OWNERDATA)上面三次得到的rtitem的宽度都不一样。我想知道有什么办法可以让它们的宽度相同。