列表视图与平铺视图样式,子项目不会出现?

时间:2013-04-17 14:16:21

标签: api winapi listview

我正在ListView使用纯win32 api。但是当我用平铺视图设置ListView时。那么子项目不会出现在项目旁边。 我的代码如下:

ListView_SetView(m_hwndListview,LV_VIEW_TILE);
//Set tile view info
SIZE size = { 150, 75 };
LVTILEVIEWINFO tileViewInfo = {0};

tileViewInfo.cbSize   = sizeof(tileViewInfo);
tileViewInfo.dwFlags  = LVTVIF_FIXEDSIZE;
tileViewInfo.dwMask   = LVTVIM_COLUMNS | LVTVIM_TILESIZE;
tileViewInfo.cLines   = 3;
tileViewInfo.sizeTile = size;

//Set tile info
LVTILEINFO lvti = {0};
int order[2];
order[0]=2;
order[1]=1;
lvti.cbSize = sizeof(LVTILEINFO);
lvti.iItem = 0;
lvti.cColumns = 2;
lvti.piColFmt =  LVCFMT_LEFT;
lvti.puColumns = PUINT(order);

ListView_SetTileInfo(m_hwndListview, &lvti);
ListView_SetTileViewInfo(m_hwndListview, &tileViewInfo);

有没有人有想法解决这个问题? 非常感谢!

1 个答案:

答案 0 :(得分:0)

lvti.piColFmt应该是指向列格式值数组的指针,而不是单个值。在你的情况下,它可能是这样的:

int colfmt[2];
colfmt[0] = LVCFMT_LEFT;
colfmt[1] = LVCFMT_LEFT;
lvti.piColFmt = colfmt;

希望有所帮助!