标题:关于C/SDK中list view控件的一个疑惑!!!求解
只看楼主
lsd98
Rank: 2
等 级:论坛游民
帖 子:51
专家分:26
注 册:2010-3-30
结帖率:76.92%
已结贴  问题点数:10 回复次数:6 
关于C/SDK中list view控件的一个疑惑!!!求解
程序代码:
void ShowData(HWND hwnd,int i)//将数据导入列表框
{
    HWND hwndList = GetDlgItem(hwnd,IDC_LISTINFO);
      LVITEM lv;
      lv.mask = LVIF_TEXT;
      lv.iItem = i;

      lv.iSubItem = 0;
      lv.pszText = f.userName;
      SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);
        lv.iSubItem = 1;
      lv.pszText = f.password;
      ListView_SetItem(hwndList,&lv);
      lv.iSubItem = 2;
      lv.pszText = f.sexm;
      ListView_SetItem(hwndList,&lv);

      SendMessage(hwndList,WM_SETREDRAW,TRUE,0);  
      UpdateWindow(hwndList);
}
上面的代码是向list view控件中发送消息的一个函数
为什么lv.pszText = f.sexm;
      ListView_SetItem(hwndList,&lv);
这列没有数据输出?全部用一种方式发送消息也不行!

为什么我将这3项都用SendMessage向list view控件发送消息的时候,
程序代码:
lv.iSubItem = 0;
lv.pszText = f.userName
SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);

lv.iSubItem = 1;
lv.pszText = f.password;
SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);

lv.iSubItem = 2;
lv.pszText = f.sexm;
SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);



只有第一列显示数据,而后面的两个没有数据?
我该什么弄 ?困扰好久了,很郁闷!!
求高手指教!!!
搜索更多相关主题的帖子: SDK list view 控件 求解 
2010-04-26 20:23
hanzhenddd
Rank: 5Rank: 5
等 级:职业侠客
帖 子:90
专家分:361
注 册:2010-3-4
得分:2 
SendMessage  和f结构体指针发出来看看!~
2010-04-27 08:53
lsd98
Rank: 2
等 级:论坛游民
帖 子:51
专家分:26
注 册:2010-3-30
得分:0 
程序代码:
typedef struct Packet
{
      char userName[32];
      char password[32];
      char sexm[8];
}Datapack,DataS;
DataS f;
上面是结构体,用来存从数据库中提取出来的数据,验证过,取数据没有任何问题!只是将数据插入到列表框时如果3列都用SendMessage方法插入的话,只有第一列有数据,第二第三列都没有数据;lv.iSubItem = 0;
lv.pszText = f.userName
SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);

lv.iSubItem = 1;
lv.pszText = f.password;
SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);

lv.iSubItem = 2;
lv.pszText = f.sexm;
SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);
像上面的插入方法,后面两列没数据!
而下面的插入方法,最后一列没有数据!
程序代码:
void ShowData(HWND hwnd,int i)//将数据导入列表框
{
    HWND hwndList = GetDlgItem(hwnd,IDC_LISTINFO);
      LVITEM lv;
      lv.mask = LVIF_TEXT;
      lv.iItem = i;

      lv.iSubItem = 0;
      lv.pszText = f.userName;
      SendMessage(hwndList,LVM_INSERTITEM,i,(LPARAM)&lv);
        lv.iSubItem = 1;
      lv.pszText = f.password;
      ListView_SetItem(hwndList,&lv);
      lv.iSubItem = 2;
      lv.pszText = f.sexm;
      ListView_SetItem(hwndList,&lv);

      SendMessage(hwndList,WM_SETREDRAW,TRUE,0); 
      UpdateWindow(hwndList);
这个是 第一列用SendMessage方法;第二,三列用ListView_SetItem方法,但是第三列没有数据!!
高手帮忙啊!!!困扰好久了!!!
2010-04-27 12:48
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:2 
用strcpy()方式处理试试.

[ 本帖最后由 cnfarer 于 2010-4-27 13:20 编辑 ]

★★★★★为人民服务★★★★★
2010-04-27 13:18
lsd98
Rank: 2
等 级:论坛游民
帖 子:51
专家分:26
注 册:2010-3-30
得分:0 
不行啊
2010-04-28 09:48
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
得分:2 
pszText 为 LPTSTR类型, 即使是ANSI直接赋值也不规范吧?会不会跟UNICODE有关,LZ有没有注意下?
2010-04-28 11:03
lsd98
Rank: 2
等 级:论坛游民
帖 子:51
专家分:26
注 册:2010-3-30
得分:0 
问题解决了,感谢各位!!
2010-04-28 21:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-304489-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025005 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved