请帮下,多谢:小弟我从ListCtrl的某一单元格中取内容,结果只返回首个字符(返回的是单个字符,不是字符串),请教下这个是为什么,如何解决了?多谢
请帮下,谢谢:我从ListCtrl的某一单元格中取内容,结果只返回首个字符(返回的是单个字符,不是字符串),请问下这个是为什么,怎么解决了?谢谢!
int nItem=m_backPlayFileNameList.GetSelectionMark(); //nItem为所在的行
CString strName = m_backPlayFileNameList.GetItemText(nItem, 1);
char *strFindName = (char *)strName.GetBuffer(strName.GetLength()+1);
调试的时候的情况是这样的:
鼠标放在返回值上都是对的,nItem的返回值是0,表示我选中的是第一行,
然后strName的返回值为什么会有四级的弹出框,前面的三级中,显示的内容都是正确的那个字符串内容,可是最后一级的内容只显示第一个字符,然后最后的strFindName中得到的值就是只有那个首字符了,请问下该怎么得到第一行第一列中的全部内容,而不只是首字符了?谢谢了!
------解决方案--------------------
CString strName 对不对?
使用Mid函数 取 子串.
------解决方案--------------------
很明显,楼主是Unicode开发环境,CString转char*不能这样转的,应该用WideCharToMultiByte
你这样转出来的strFindName,第二个字节肯定是0x00,所以导致问题
int nItem=m_backPlayFileNameList.GetSelectionMark(); //nItem为所在的行
CString strName = m_backPlayFileNameList.GetItemText(nItem, 1);
char *strFindName = (char *)strName.GetBuffer(strName.GetLength()+1);
调试的时候的情况是这样的:
鼠标放在返回值上都是对的,nItem的返回值是0,表示我选中的是第一行,
然后strName的返回值为什么会有四级的弹出框,前面的三级中,显示的内容都是正确的那个字符串内容,可是最后一级的内容只显示第一个字符,然后最后的strFindName中得到的值就是只有那个首字符了,请问下该怎么得到第一行第一列中的全部内容,而不只是首字符了?谢谢了!
------解决方案--------------------
CString strName 对不对?
使用Mid函数 取 子串.
------解决方案--------------------
很明显,楼主是Unicode开发环境,CString转char*不能这样转的,应该用WideCharToMultiByte
你这样转出来的strFindName,第二个字节肯定是0x00,所以导致问题