Я должен сделать C ++, VSPackage, который содержит TreeView. Я добавил его в диалоговое окно по умолчанию сценария ресурсов проекта (* .rc) из окна панели инструментов. Проблема в том, что я не знаю, как добавить элементы к нему.
Я посмотрел на многих сайтах, но у них есть код для C # или других типов проектов.
Я нашел проект, созданный Song Ho Ahn, а также исходный код, который можно найти внизу этого сайта. В виде дерева.
Я попытался перейти в окно свойств TreeView, чтобы увидеть, есть ли что-то, чтобы я мог добавить элементы к нему, а затем найти способ заменить их, но ничего. Я пытался использовать код, который он написал, просто чтобы помочь мне найти решение моей проблемы, но я не смог его найти. Может быть, это «обработчик» и «родитель», которые я не знаю, как использовать.
void set(HWND parent, int id, bool visible=true)
{
this->parent = parent;
handle = GetDlgItem(parent, id);
if(!visible) disable();
}
Хочу отметить, что я новичок в VSPackage и что раньше я не делал такой большой проект.
Если кто-то может объяснить мне, что делать, отправить меня по пути или даже сказать, что я глуп и решение простое, я буду очень признателен.
В размещенном вами фрагменте вы используете собственный API-интерфейс WIN32. Так что вы можете посмотреть в документации TVM_INSERTITEM сообщение.
Вот небольшой фрагмент, чтобы добавить одну запись в элемент управления TreeView (независимо от того, создан ли он скриптом ресурса или вызовом CreateWindow (..)):
TVITEM tvi;
TVINSERTSTRUCT tvins;
HTREEITEM hItem;
/* setup new item */
tvi.mask = TVIF_TEXT; // just text
tvi.pszText = "Hello TreeView!";
tvi.cchTextMax = 0; // ignored if creating the item
/* setup insertion structure of item */
tvins.hParent = TVI_ROOT; // insert item at root level
tvins.item = tvi; // item description setup above
tvins.hInsertAfter = NULL; // instert on top of the tree view
hItem = (HTREEITEM)SendMessage(GetDlgItem(hWnd, IDC_TREEVIEW), // update parameters of GetDlgItem(..) according to your code
TVM_INSERTITEM,
0,
(LPARAM)(LPTVINSERTSTRUCT)&tvins);
if (hItem == NULL)
{
/* something went wrong */
}