免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: sgxg_1999
打印 上一主题 下一主题

控件TREEVIEW的节点能添加一个值吗? [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:56:11
11 [报告]
发表于 2011-03-24 15:06 |只看该作者
回复  hellioncu


    强制转换后,tvi.lParam值就变了!
例如给一个节点附加一个字符串值"abc",那么经 ...
sgxg_1999 发表于 2011-03-24 15:04



    你用的時候再轉換下。

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
12 [报告]
发表于 2011-03-24 15:06 |只看该作者
回复  hellioncu


    强制转换后,tvi.lParam值就变了!
例如给一个节点附加一个字符串值"abc",那么经 ...
sgxg_1999 发表于 2011-03-24 15:04



    贴代码

论坛徽章:
0
13 [报告]
发表于 2011-03-24 15:14 |只看该作者
本帖最后由 sgxg_1999 于 2011-03-24 15:15 编辑

tvinsert.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
tvinsert.hInsertAfter=TVI_LAST;    //从最后一点加进去
tvinsert.item.pszText=*(p+j);      //节点的名字
tvinsert.item.lParam=(LPARAM)"abc";//附加的值


获得附加的值(测试)
sprintf(Text,"%d",tvi.lParam);
MessageBox(hWnd,  Text,boxTitle,MB_OK|MB_ICONINFORMATION);

论坛徽章:
0
14 [报告]
发表于 2011-03-24 15:18 |只看该作者
回复 11# nizvoo


  哦!  强制一下:(char*)tvi.lParam
可以了!谢谢!

论坛徽章:
0
15 [报告]
发表于 2011-03-24 15:20 |只看该作者
回复 12# hellioncu

非常谢谢!问题解决!

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:56:11
16 [报告]
发表于 2011-03-24 15:22 |只看该作者
回复  nizvoo


  哦!  强制一下char*)tvi.lParam
可以了!谢谢!
sgxg_1999 发表于 2011-03-24 15:18



    是的,那個裏頭保留的是字符串指針。

论坛徽章:
0
17 [报告]
发表于 2011-03-24 16:56 |只看该作者
回复 16# nizvoo


    发现问题:
第一种:
tvi.lParam=(LPARAM)"chinaunix";按照强转换后        测试:MessageBox(hWnd,  (char*)(tvi.lParam),boxTitle,MB_OK|MB_ICONINFORMATION);显示字符串:chinaunix
第二种:
char *p="chinaunix";
tvi.lParam=(LPARAM)p;按照强转换后        测试:MessageBox(hWnd,  (char*)(tvi.lParam),boxTitle,MB_OK|MB_ICONINFORMATION);显示字符串全是一长串乱码!

论坛徽章:
0
18 [报告]
发表于 2011-03-24 17:38 |只看该作者
到网上搜索发现一贴,但是测试还是不对
http://topic.csdn.net/t/20040812/10/3266540.html

论坛徽章:
0
19 [报告]
发表于 2011-03-24 17:45 |只看该作者
回复  nizvoo


    发现问题:
第一种:
tvi.lParam=(LPARAM)"chinaunix";按照强转换后        测试:MessageB ...
sgxg_1999 发表于 2011-03-24 16:56

如果把第二种方法改成:
char *p="chinaunix";
tvi.lParam=(LPARAM)(&p);按照强转换后        测试:MessageBox(hWnd,  (char*)(tvi.lParam),boxTitle,MB_OK|MB_ICONINFORMATION);显示字符串是空
这是怎么回事?

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:56:11
20 [报告]
发表于 2011-03-24 18:05 |只看该作者
如果把第二种方法改成:
char *p="chinaunix";
tvi.lParam=(LPARAM)(&p);按照强转换后        测试:Mess ...
sgxg_1999 发表于 2011-03-24 17:45



    vi.lParam=(LPARAM)(p);
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP