paule22 Geschrieben 29. März 2003 Geschrieben 29. März 2003 Hallo WinAPIndianer, warum kann ich mit folgenden code, keine Einträge aus der TreeView lesen (ich will die einträge (Text der einzelnen Items) .... Der Aufruf von TreeView_GetItem gibt stets und ständig false zurück ic = TreeView_GetCount(user_window); // Das geht char buf[100]; hitem = TreeView_GetRoot(user_window); TreeView_SelectItem(user_window,hitem); // Das geht auch !!! // ab hier wird es interessant ... pitem.mask = TVIF_TEXT; pitem.hItem = hitem; pitem.pszText = buf; pitem.cchTextMax = sizeof(buf); if (TreeView_GetItem(user_window, &pitem) == true) { AnsiString as; as = "txt: "; as += pitem.pszText; as += " "; as += (int) hitem; user_list->Add(as); } else { user_list->Add("null getimtem"); } [/PHP] Danke schonmal für hilfe paule22
Klotzkopp Geschrieben 29. März 2003 Geschrieben 29. März 2003 Bei mir klappt's. Ist der Text vielleicht länger als 100 Zeichen?
paule22 Geschrieben 29. März 2003 Autor Geschrieben 29. März 2003 Hallo, das Problem ist, das TreeView Control ist in einer Externen Anwendung. user_window habe ich aber schon heraus frimmeln können. wie meinst du das mit der Länge ?? ich weis nicht wie lang der Text ist aber dürfte 100 zeichen nicht überschreiten (wenn überhaupt 55 Zeichen erreicht werden) ich hab mal folgendes gemacht: eine externe Anwendung programmiert (CBuilder) und eine form angelegt auf dieser Form habe ich zum testen ein TTreeView gelegt. dieses Fenster handle habe ich dann in der zweiten Anwendung mit "ChildWindowFromPoint" ermittelt und EnumWindows natürlich. ich habe keine Properties geändert einfach das TreeView in der externen Anwendung auf die Form gezogen. jetzt versuch ich schon den ganzen Tag, die Items auszulesen - 2 von der Anzahl beide Root also: +-Node1 | +-Node2 mich verwundert, das es bei dir funktioniert und bei mir nicht schade eigentlich aber das muss doch irgendwie funktionieren .... !!! Paule22
Klotzkopp Geschrieben 30. März 2003 Geschrieben 30. März 2003 Originally posted by paule22 das Problem ist, das TreeView Control ist in einer Externen Anwendung.Jetzt kommen wir der Sache näher. Hier liegt nämlich das Problem. Die Adresse des Puffers, die du übergibst, bezieht sich auf den Adressraum deines Prozesses. Damit kann der andere Prozess nichts anfangen. Möglicherweise kommst du mit VirtualAllocEx weiter. Damit kannst du Speicher im Adressraum eines fremden Prozesses reservieren. Schau mal hier rein, da hatte wohl jemand das gleiche Problem: http://www.experts-exchange.com/Programming/Programming_Platforms/Win_Prog/Q_20096218.html
paule22 Geschrieben 30. März 2003 Autor Geschrieben 30. März 2003 ich danke dir erstmal !!! Hooks, aha das ist des rätsels lösung jetzt muss ich mich da erstmal reinarbeiten und sehen wie das so alles funktioniert ...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden