TreeView Eintrag suchen
-
Hi, irgentwei klappt es nicht ich will in einem TreeView einen eintrag suchen und dann selektieren gibt es da einen leichten befehl? ich habe es jetzt mit durchsuchen versucht aber es klapppt nicht hier mal der Code:
HTREEITEM hTreeItem = TreeView_GetFirstVisible(g_hWndTV); while (hTreeItem != NULL) { TVITEMEX Item; TreeView_GetItem(g_hWndTV, &Item); if (strcmp(Item.pszText, "Modem")) { TreeView_Expand(g_hWndTV, hTreeItem, TVM_EXPAND); ... } TreeView_GetNextVisible(g_hWndTV, hTreeItem); }
Erstmal sollte der Eintrag aufgeklappt werden dann darin der eigentlichhe ausgewählt werden.
Der Fehler ist das auf einmal mmc.exe einen Schweren Ausnahme Fehler verursacht.
Danke
-
Erstens solltest du die TVITEMEX-Struktur initialisieren. Damit legst du nämlich fest, welche Informationen du haben willst. Zweitens solltest du den Rückgabewert von TreeView_GetItem prüfen. Drittens solltest du nochmal nachschauen, was der Rückgabewert von strcmp bedeutet.
-
Wie meinst du das TVITEMEX initialiesieren sollte ich icht einen Zeiger auf so eine Struktur bekommen?
-
TVITEMEX Item = {0}; bzw. mit ZeroMemory
und dann noch das hier:
When the TVM_GETITEM message is sent, the hItem member of the TVITEM or TVITEMEX structure identifies the item to retrieve information about, and the mask member specifies the attributes to retrieve.
If the TVIF_TEXT flag is set in the mask member of the TVITEM or TVITEMEX structure, the pszText member must point to a valid buffer and the cchTextMax member must be set to the number of characters in that buffer. The returned text will not necessarily be stored in the original buffer passed by the application. It is possible that pszText will point to text in a new buffer rather than place it in the old buffer.