CString для LPWSTR в mfc

64
7

Я создаю свое приложение в режиме 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?

спросил(а) 2021-01-19T12:21:47+03:00 6 месяцев, 1 неделя назад
1
Решение
100

Если я не понял этот вопрос, все, что вам нужно сделать, - это привести CString в LPCTSTR чтобы использовать его с функциями Windows API. См. Здесь описание.

Поскольку член TVITEM::pszText является LPTSTR вам нужно будет снова LPTSTR его в неконстантный, однако это должно быть безопасно для таких действий, как TVM_INSERTITEM поскольку строка, которую вы поставляете, не изменяется.

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

ответил(а) 2021-01-19T12:21:47+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема