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