mfc中CString到LPWSTR

1 c++ string unicode mfc visual-c++

我正在 UNICODE 模式下构建我的应用程序,并希望将 CString 转换为 LPWSTR。基本上,我有一个包含 CString 作为成员变量的类,例如,

class MyClass
{
   CString TreeNodeName;
}
Run Code Online (Sandbox Code Playgroud)

我想使用以下结构将项目插入树控件中,

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
Run Code Online (Sandbox Code Playgroud)

请帮我如何转换CString TreeNodeName;tvInsert.item.pszText

Jon*_*ter 5

除非我误解了这个问题,否则您所要做的就是将 转换CString为 aLPCTSTR以将其与 Windows API 函数一起使用。请参阅此处的说明

因为该TVITEM::pszText成员是一个LPTSTR,所以您需要再次转换为非常量,但是这对于诸如TVM_INSERTITEM您提供的字符串未修改之类的操作来说应该是安全的。

tvInsert.item.pszText = (LPTSTR)(LPCTSTR)ClassObject->TreeNodeName;
Run Code Online (Sandbox Code Playgroud)