Benutzer mit den meisten Antworten
Accelerators oder "Abkürzungen"

Frage
-
Hallo
TranslateAccelerator wird verwendet um Tastenanschläge nach Mustern abzusuchen und WM_COMMAND's zu senden bei Übereinstimmungen. Die WM_COMMAND's bekomme ich auch, wenn ich in einem Menü drin was anklicke, wenn ich im Text ein & platziere (das müsste dann wohl über die Menü-Loops und so Zeug laufen). Soweit so gut... aber, was ist, wenn ich einem Button im Text ein & einfüge? Wie funktioniert der Mechanismus, um das als Accelerator zu erkennen? Also, wenn ich roh Win32 programmiere... muss ich dann was tun, damit das erkannt wird, oder... ich weiss nicht... ist das eine Grundfunktion vom CreateDialog, sowas zu erkennen? ... was ist notwendig um es zu erkennen? Wenn ich z.B. custom controls baue... muss ich die speziell bauen, damit das erkannt wird? Oder muss man die Keys irgendwo registrieren??
Wenn man Frameworks braucht geht das immer so automatisch... aber jetzt würde ich das gerne mal im Details ansehen (vor allem auch darum, weil aktuell ein Shortcut nicht funktioniert :-) ).
Rudolf
Antworten
-
Hallo
Ja, also der Fehler war, dass wir unseren HWND nicht korrekt gesetzt hatten zu gewissen Zeiten und wir daher die Nachrichten nicht per IsDialogMessage verarbeitet hatten.
Jedoch ging's mir mehr um das allgemeine Verständnis von diesen Mechanismen. So wie's scheint, sucht sich der DialogManager doch wirklich den korrekten Knopf bzw. das korrekte Steuerelement aus, indem er alle nach ihrem Text fragt. Allerdings hab ich noch immer Situationen, in denen dieser Mechanismus streikt und ich schnall noch nicht wieso... irgendwas mach ich noch falsch. Aber gut, was anderes hatte ich auch nicht erwartet. Das Zeug ist teils schon recht seltsam und die Dokumentation ... na ja :-) ... aber ich wühl mich durch "the old new thing" und Martin's Blog... da lernt man so einiges. Und dann machen wir noch Versuche aller Art... auch das kriegen wir irgendwann hin.
Rudolf
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 28. August 2015 08:06
Alle Antworten
-
Hallo Rudolf Meier,
Ist das obere Word von wParam in Deinem Fall 0 oder 1? Hier ist ein Beispiel:
C++ Accelerator keys do not workGruß,
DimitarBitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hallo
Ja, also der Fehler war, dass wir unseren HWND nicht korrekt gesetzt hatten zu gewissen Zeiten und wir daher die Nachrichten nicht per IsDialogMessage verarbeitet hatten.
Jedoch ging's mir mehr um das allgemeine Verständnis von diesen Mechanismen. So wie's scheint, sucht sich der DialogManager doch wirklich den korrekten Knopf bzw. das korrekte Steuerelement aus, indem er alle nach ihrem Text fragt. Allerdings hab ich noch immer Situationen, in denen dieser Mechanismus streikt und ich schnall noch nicht wieso... irgendwas mach ich noch falsch. Aber gut, was anderes hatte ich auch nicht erwartet. Das Zeug ist teils schon recht seltsam und die Dokumentation ... na ja :-) ... aber ich wühl mich durch "the old new thing" und Martin's Blog... da lernt man so einiges. Und dann machen wir noch Versuche aller Art... auch das kriegen wir irgendwann hin.
Rudolf
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 28. August 2015 08:06