我正在以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 吗?

最佳答案

除非我误解了这个问题,否则所有您需要做的就是将CString转换为LPCTSTR以便将其与Windows API函数一起使用。 See here for a description

由于TVITEM::pszText成员是LPTSTR,因此您将需要再次强制转换为非const,但这对于诸如TVM_INSERTITEM之类的操作应该是安全的,因为您提供的字符串未修改。

tvInsert.item.pszText = (LPTSTR)(LPCTSTR)ClassObject->TreeNodeName;

08-19 15:59