Treeview Item editieren
-
Ich habe einen Treeview mit dem Style "TVN_ENDLABELEDIT" erstellt. Im Eventhandler des Elternfensters gebe ich bei der Nachricht "TVN_ENDLABELEDIT" TRUE zurück, der Label wird korrekt geändert. Leider Reagiert der Label solange er im Editiermodus ist nicht auf den Keyboardtastendruck "Enter" oder "Escape", d.h. ich kann das Ende des Editierens nicht per Tastendruck auslösen, sondern muss auf ein anderes Item oder einen einen leeren Bereich im Treeview mit der Maus klicken. Seltsamerweise wird das Editieren aber auch durch Betätigung der "TAB" Taste beendet und der Label geändert. Was muss ich machen, damit das Editieren so wo im Treeview des Explorers funktioniert, spricht ein Tastendruck von "Enter" übernimmt den Label und eine Tastendruck von "Escape" verwirft die Änderung?
-
...ich kann das Ende des Editierens nicht per Tastendruck auslösen...
schau dir WM_KEYDOWN an: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646280(v=vs.85).aspx
-
Das mit dem WM_KEYDOWN hab ich schon probiert. Ich hab das Editfeld des Treeview-Items zum Zeitpunkt von TVN_BEGINLABELEDIT gesubclassed um die WM_KEYDOWN Nachrichten des Editfeldes abzufangen. Ich erhalte Keyboardnachrichten (z.B. F1, INS, DEL, END, HOME, das ganze Aplphabet, etc.) aber keine Nachricht von der ENTER oder ESCAPE Taste.
-
http://msdn.microsoft.com/en-us/library/windows/desktop/ff486107(v=vs.85).aspx
oder
http://msdn.microsoft.com/en-us/library/bb773540(v=vs.85).aspx
-
Danke für deine Geduld und Mühe Alexey, aber das war nicht des Rätsels Lösung. Ich habe folgendes entdeckt:
http://support.microsoft.com/kb/167960
Seltsammerweise ist Visual Studio 2005 Professional nicht in der Bugliste, scheint aber trotzdem den Bug aufzuweisen.
Da ich nicht in c++ programmiere hat mir das direkt nicht die Lösung gebracht. Ich hab jetzt einfach einen Keyboardhook geladen der prüft of VK_ENTER oder VK_ESCAPE gesendet wird, wärend der Treeview ein Editfenster geöffnet hat, diesem Editfenster sende ich dann die WM_KEYDOWN Nachrichten VK_ENTER oder VK_ESCAPE. Nun gehts wies sollt, danke trotzdem.
-
Kein problem !
Das waren keine Rätsel lösungen sondern mein Logik war bezogen auf Events von TreeView, ohne SendMessage. Taste an Steuerelement senden wär auch Lösung.
-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum WinAPI in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.