我正在以UNICODE模式构建我的应用程序并希望将CString转换为LPWSTR。基本上我有一个包含CString作为成员变量的类,如
class MyClass
{
CString TreeNodeName;
}
我想使用以下结构将项目插入树控件,
TVINSERTSTRUCT tvInsert;
tvInsert.hParent = ParentNode;
tvInsert.hInsertAfter = NULL;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.lParam = (long)ClassObject;
tvInsert.item.pszText = ClassObject->TreeNodeName; //Need this conversion
请帮助我如何将 CString TreeNodeName; 转换为 tvInsert.item.pszText ?
答案 0 :(得分:4)
除非我误解了这个问题,否则您只需将CString
强制转换为LPCTSTR
即可将其与Windows API函数一起使用。 See here for a description
因为TVITEM::pszText
成员是LPTSTR
,您需要再次强制转换为非const,但是对于TVM_INSERTITEM
这样的操作应该是安全的,因为您提供的字符串未被修改
tvInsert.item.pszText = (LPTSTR)(LPCTSTR)ClassObject->TreeNodeName;