总有人间一两风,填我十万八千梦

[小记]MFC中CListCtrl删除所有列、获取ClistCtrl当前选中行号,C++16进制字串转数值

Windows C/C++ Zero、J 3652℃ 0评论

好久没有写MFC的程序了,今天写了一个奇怪的程序,好多控件的用法都忘得差不多了,这里小记一下。、

CListCtrl快速删除所有的列

while (m_ListCtrl.DeleteColumn(0));

这种方法可以简单的通过函数DeleteColumn(0)一直删除第0列来完成,快速有效。

CListCtrl获取到当前的选中行(单行)

POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition(); 
int CurSel = m_ListCtrl.GetNextSelectedItem(pos); //取得当前行号 

其中CurSel就是当前选中的行号,-1表示未选中

16进制字串转换为数值

//以一个16进制字串转换为UINT64为例子,其中szAddressHex是一个16进制字串,类似 0xffA0000
TCHAR* pEnd;
m_u64val=_tcstoui64(szAddressHex,&pEnd,16);//16表示16进制

上面的代码中pEnd是一个字符指针,它用于描述字串转换成16进制的时候终止的位置,例如0xFFABZ,那么pEnd指向了’Z’

当然你还可以使用_tcstol(),把16进制字串转换为一个long类型,或者使用_tcstoul()转换成unsigned long类型,这个函数是_tcstoXXX类型的,至于把字串转换成什么类型,就与XXX相关

转载请注明:悠然品鉴 » [小记]MFC中CListCtrl删除所有列、获取ClistCtrl当前选中行号,C++16进制字串转数值

喜欢 (0)or分享 (0)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址