GetItemText

 
 

函数功能

编辑
检索列表视图中的项目或子项目的文字

函数原型

编辑
int GetItemText( int nItem, int nSubItem, LPTSTR lpszText, int nLen ) const;
CString GetItemText( int nItem, int nSubItem ) const;

参数

编辑
nItem
该项目是要检索的文本的索引。(行)
nSubItem
指定的子项目,是要检索的文本。(字段,列)
lpszText
即收到该项目的文本字符串的指针。
nLen
缓冲区的长度,由lpszText所指向。

返回值

编辑
返回检索字符串的长度(int)。
返回一个 CString的文本
C语言用 int GetItemText( int nItem, int nSubItem, LPTSTR lpszText, int nLen ) const;
MFC 用CString GetItemText( int nItem, int nSubItem ) const;
GetItemText有好几个重载函数,但没有返回值LPCTSTR类型的函数,之所以能运行成功,是因为其中有返回会是int的函数,int是可以转换成指针的,但是里面保存的并不是值。
最简单的方法是用CString接收返回值,,如:
CString str1,str2,str3;
str1=m_listctrl_area.GetItemText(0,0);
str2=m_listctrl_area.GetItemText(0,1);
str3=m_listctrl_area.GetItemText(0,2);
即可,至于使用指针的方法,可以使用下面的代码:
LPTSTR str1, str2, str3;
m_listctrl_area.GetItemText(0, 1, str1, 10);
m_listctrl_area.GetItemText(0, 2, str2, 10);
m_listctrl_area.GetItemText(0, 3, str3, 10);
 
 
 
--------------------------------------------------------------------
我用下面的代码测试是正常的。 

m_list.InsertColumn(0,"商品编号",LVCFMT_LEFT,130,0); 
m_list.InsertColumn(1,"商品名称",LVCFMT_LEFT,220,1); 
m_list.InsertColumn(2,"销售数量",LVCFMT_LEFT,130,2); 

m_list.InsertItem(0,""); 
m_list.SetItemText(0,0,"0123456"); 
m_list.SetItemText(0,1,"0223456"); 
m_list.SetItemText(0,2,"0323456"); 

m_list.InsertItem(1,""); 
m_list.SetItemText(1,0,"1123456"); 
m_list.SetItemText(1,1,"1223456"); 
m_list.SetItemText(1,2,"1323456"); 

CString buffer=""; 
buffer+=m_list.GetItemText(0,1); 
MessageBox(buffer); 

结果没问题。

问题出在WriteFile(hFile,buffer,4,&dwWritenSize,NULL); 
第3个参数不能写4.
第3个参数表示你的buffer里总共的字节数,你写4就只能写入1234了、
所以
你可以这样
CString num;
将4换为buffer.GetLength()

你可以用下面的代码测试
int i=buffer.GetLength();
num.Format("%d",i);
MessageBox(num);

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
'绑定对象数据 If SMTStencilDetails.Stencil IsNot Nothing Then txtStencil.Text = SMTStencilDetails.Stencil.StencilName txtStencilID.Text = SMTStencilDetails.Stencil.StencilID TimeStart.Value = IIf(SMTStencilDetails.Stencil.StartDate = Nothing, Date.Now, SMTStencilDetails.Stencil.StartDate) cmbState.SelectedIndex = SMTStencilDetails.Stencil.StateID - 1 txtThickness.Text = SMTStencilDetails.Stencil.Thickness TimeMake.Value = SMTStencilDetails.Stencil.MakeDate txtLocation.Text = SMTStencilDetails.Stencil.Location txtUsesCount.Text = SMTStencilDetails.Stencil.StencilUseCount cmbWorkShop.Text = SMTStencilDetails.Stencil.WorkShop txtNotes.Text = SMTStencilDetails.Stencil.Notes dtpMaintenanceTime.Value = IIf(SMTStencilDetails.Stencil.RepairDate = Nothing, Date.Now, SMTStencilDetails.Stencil.RepairDate) If SMTStencilDetails.Stencil.ProductName.Count = 0 Then txtTip.Text = "" prdList = Nothing Else For i = 0 To SMTStencilDetails.Stencil.ProductName.Count - 1 For j = 0 To cklProductName.Items.Count - 1 Dim s = cklProductName.GetItemText(cklProductName.Items(j)) If s = SMTStencilDetails.Stencil.ProductName(i) Then cklProductName.SetItemChecked(j, True) strPart += "," & SMTStencilDetails.Stencil.ProductName(i) End If Next Next txtTip.Text = strPart.Substring(1) prdList = strPart.Substring(1) End If Else cmbState.SelectedIndex = 0 End If 保持原有逻辑情况下优化该代码,让代码具有更好的可读性,可维护性,具有更好的性能,并说明理由
最新发布
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值