1

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

4

1 回答 1

4

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

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

tvInsert.item.pszText = (LPTSTR)(LPCTSTR)ClassObject->TreeNodeName;
于 2013-10-03T07:19:37.790 回答