请教关于listview中的LVCOLUMN和LVITEM这2个struct的问题

WIN32SDK_ASM 2014-04-20 10:36:32
鄙人做中的项目用到了listview,采用createwindowex(L"syslistview32)创建....
相关代码如下:
插入行

LVCOLUMN lvc;
lvc.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH | LVCF_ORDER;
lvc.fmt = LVCFMT_LEFT;
for (int i = 0; i < 5; i++)
{
lvc.pszText = pstringtable[i];
lvc.iSubItem = i;
lvc.iOrder = i;
lvc.cx = 187;
if (i == 4)
lvc.cx = 20;
SendMessage(hList, LVM_INSERTCOLUMN, 0, (long) &lvc);

}

这其中的.iSubItem的作用不明.

插入列

//重复N次
lvm.pszText = LPSTR_TEXTCALLBACK; // Sends an LVN_GETDISPINFO message.
lvm.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
lvm.stateMask = 0;
lvm.iSubItem = 0;
lvm.state = 0;
lvm.iItem = row;
lvm.iImage = row;
if ((i=SendMessage(hList, LVM_INSERTITEM, 0, (long) &lvm))!=-1)
{
................
}


响应wm_notify

case WM_NOTIFY:
NMLVDISPINFO* plvdi;
switch (((LPNMHDR) lParam)->code)
{
case LVN_GETDISPINFO:

plvdi = (NMLVDISPINFO*) lParam;

switch (plvdi->item.iSubItem)
{
case 0:
plvdi->item.pszText = ptpinfos.at(plvdi->item.iItem).url;
break;
case 1:
plvdi->item.pszText = ptpinfos.at(plvdi->item.iItem).recive;
break;
case 2:
plvdi->item.pszText = ptpinfos.at(plvdi->item.iItem).title;
break;
case 3:
plvdi->item.pszText = ptpinfos.at(plvdi->item.iItem).name;
break;
case 4:
plvdi->item.pszText = ptpinfos.at(plvdi->item.iItem).time;
break;
default:
break;
}
break;
}
break;
case WM_DESTROY:


设置listview样式

DWORD styles = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES;


调试的时候产生了很多问题.
1,LVCOLUMN中.subitem作用不明,是否和 LVITEM中的.subitem对应.?(实际运行似乎是相反)
2,实际处理wm_notify的时候发现传进来的LVITEM.subitem的位置和LVCOLUMN中.subitem顺序相反.?
3,运行效果,,列(LVCOLUMN)的text显示顺序正常(指定了order),但是设置行(LVITEM)数据的时候指定text的时候必须反着来弄.
4,checkbox的位置总是在最后列(LVCOLUMN.subitem==4,LVITEM.subitem==0)
5,插入行只能在最上面插入??LVITEM.iItem的值只是一个index,和行显示顺序无关???

跪求大大帮忙解决

...全文
129 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
WIN32SDK_ASM 2014-04-21
  • 打赏
  • 举报
回复
引用 2 楼 unituniverse2 的回复:
耐心看下文档吧。你问的东西文档里都有 http://msdn.microsoft.com/en-us/library/windows/desktop/bb774737(v=vs.85).aspx
感谢,不过这个文档我看过,并没有找到有用的东西
WIN32SDK_ASM 2014-04-20
  • 打赏
  • 举报
回复
跪求个位大大帮忙
unituniverse2 2014-04-20
  • 打赏
  • 举报
回复
耐心看下文档吧。你问的东西文档里都有 http://msdn.microsoft.com/en-us/library/windows/desktop/bb774737(v=vs.85).aspx

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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