Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 241159 (2595)

| Suchen
| Zurück zur Übersicht

Autor | Thema: WM_COMMAND
Stefan Schnell
| Datum:21.04.02 12:25 (mail@stschnell.de) |
Hallo Community, bastele seit einiger Zeit an dynamischen Menüs, sprich z. B. Menüs die sich auf Wunsch von Deutsch in English wandeln, Menüpunkte hinzukommen, und und und Leider bin ich mit der Abfrage von den Menüs noch nicht so zufrieden, denn bisher frage ich die über WinAPI kreierten Menüs mit %MenuItem ab. Das funktioniert aber nur wenn ich mit der Maus ein Menü anwähle. Versuche ich es über z. B. Alt + D (für das Dateimenü) so funktioniert es nicht, F10 und dann D hingegen geht wieder. Im Standard übergibt Windows ja eine Meldung via WM_COMMAND an das Programm, nur leider weiss ich nicht, wie ich diese Meldung abfangen kann. Habe es schon mit %Message und %LastMessage versucht, jedoch ohne durchschlagenden Erfolg. Wie kann ich WM_COMMAND abfangen / abfragen, um auch über die Tastenkombinationen z. B. Alt + H zu meiner Aktion zu kommen? Danke für Eure Antworten. Tschüss Stefan Schnell
Philipp Sternberg
| Datum:30.04.02 20:12 (ps@burghardt-ib.de) |
Hallo, ich kämpfe zur Zeit mit ganz ähnlichen problemen (siehe meinen Beitrag Messagehandling, ich hab bis jetzt keinen weg gefunden vernüftig an die wm_command notifications ranzukommen, auch nicht über %Notifcode der Api-Funktion GetMessage o.ä. Das mit den Tasetenkombinationen löst nicht immer wm_command aus, Alt+F4 z.B. löst einen wm_syscommand(274) aus, der dann weiter ausgewertet werden könnte sorry... Philipp
Andreas Miethe
| Datum:02.05.02 17:08 (andreas@andreas-miethe.de) |
Hallo Stefan, am einfachsten ist es wenn Du fuer jedes Menuitem einen Hotkey erstellst. So mache ich es zumindest und komme damit gut klar. Gruss Andreas Beispiel: '-------------------------------------------------- DEF RegisterHotKey(4) !"USER32","RegisterHotKey" DEF UnregisterHotKey(2) !"USER32","UnregisterHotKey" DEF &WM_HOTKEY $0312 UserMessages &WM_HOTKEY Declare Ende% CLS PopUp "&Programm" AppendMenu 100,"Ende\tALT+E" AppendMenu 101,"Was anderes STRG\tSTRG+W" AppendMenu 102,"Was anderes SHIFT\tSHIFT+T" RegisterHotKey(%HWND,10,1,69)'Handle,HotkeyID,ALT(1),Code(E) RegisterHotKey(%HWND,11,2,87)'Handle,HotkeyID,STRG(2),Code(W) RegisterHotKey(%HWND,12,4,84)'Handle,HotkeyID,STRG(3),Code(W) Whilenot ende% Waitinput If MenuItem(100) @MessageBox("Programm-Ende","Beenden ???",0) Ende% = 1 ElseIf Menuitem(101) @Messagebox("Was anderes mit STRG","Meldung",0) ElseIf Menuitem(102) @Messagebox("Was anderes mit SHIFT","Meldung",0) ElseIf %UMessage = &WM_HOTKEY 'Hotkeys abfragen If &UWParam = 10 @MessageBox("Programm-Ende","Beenden ???",0) Ende% = 1 ElseIf &UWParam = 11 @Messagebox("Was anderes mit STRG","Meldung",0) ElseIf &UWParam = 12 @Messagebox("Was anderes mit SHIFT","Meldung",0) EndIf EndIf EndWhile UnRegisterHotKey(%Hwnd,10) UnRegisterHotKey(%Hwnd,11) UnRegisterHotKey(%Hwnd,12) End '--------------------------------------------------
Stefan Schnell
| Datum: 07.05.02 21:50 (mail@stschnell.de) |
Hallo Philipp, ich habe den Dialog verfolgt und hier eine Chance gesehen, die sich leider nicht erfüllt hat; so weit so gut, vielen Dank. Hallo Andreas, Deinen Tip habe ich realisiert, löst zwar nicht mein Problem, ist aber ein super Hinweis, vielen Dank. Tschüss Stefan

| Zurück zur Übersicht