CString zu LPWSTR in mfc
Bin ich mit dem Aufbau meiner Anwendung im UNICODE-Modus und möchten, konvertieren CString zu LPWSTR.Im Grunde habe ich eine eine Klasse mit CString als member-variable wie,
class MyClass
{
CString TreeNodeName;
}
Und ich möchten, verwenden Sie folgende Struktur für das einfügen von items in tree control,
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
Bitte helfen Sie mir, wie zu konvertieren CString TreeNodeName; zu tvInsert.Element.pszText ?
- Ich kenne Sie vielleicht nicht wissen, die Antwort auf diese, aber welche Codierung verwendest du für den text in Ihrem CString? Sie sehen, die Frage ist nicht zu beantworten, es sei denn, Sie wissen, die information. Wenn Sie nicht wissen, dann könnten Sie vielleicht erklären, wo du den Wert des
TreeNodeName
aus. - vielen Dank für die schnelle Antwort grundsätzlich bin ich der Speicherung einige Werte aus XML-Dateien zu TReeNodeName die normale ASCII-Codierung
- Scheint, ich war unter einem Irrtum, da Sie im Unicode-Modus können Sie nur zuweisen direkt als Jonathan Potter sagt. Ich dachte, dass irgendeine Art von char übersetzung notwendig war.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es sei denn, ich habe falsch verstanden, die Frage, alle sollten Sie tun müssen, ist, werfen Sie die
CString
zu einemLPCTSTR
für die Verwendung mit Windows-API-Funktionen. Siehe hier für eine Beschreibung.Weil die
TVITEM::pszText
Mitglied ist einLPTSTR
müssen Sie gegossen, wieder auf non-const, dies sollte jedoch sicher sein, für Aktionen wieTVM_INSERTITEM
als die Zeichenfolge, die Sie liefern, nicht geändert.