Accelerator zur Laufzeit ermitteln
-
Guten Morgen,
ich möchte (falls möglich) zur Laufzeit herausfinden, welcher Accelerator einem bestimmten Button (CButton) zugewiesen ist.
Grüße
Dirk
-
Du kanst mit GetWindowText, GetDlgItemText Dir den Button Text holen. Dann musst Du die Strings nach einem & Zeichen durchsuchen auf das kein & Zeichen folgt... Das näcshte Zeichen ist der Accelerator...
-
Danke für die schnelle Antwort.
Mhm, bekomme da einfach nur "Button1" als Text. Der Accelerator ist nicht im Button Text verewigt. So wie ich das verstehe, wird die Verbindung zwischen dem Acccelerator und dem Button über die ID, hier z.B. IDC_BUTTON_BLABLA_01 hergestellt.
Meine Vorstellung ist, dass ich diese Info aus dem Button heraus bekomme und damit dann den entsprechenden Accelerator finde ..
Grüße
Dirk
-
Was für ein Button ist das? In einem Dialog?
Es gibt keine anderen Accelerator außer es ist noch ein Extra-Accerlator in dem Code irgendwie eigebaut.
-
Ja richtig, es handelt sich um einen Dialog, welcher als Dialog-Resource angelegt ist. Auf diesem befinden sich diverse Buttons. In der Auswahlliste der Eigenschaften ist dieser bezeichnet mit IDC_BUTTON_IOTEST_GENERIC_01 (Button Control) IButtonEditor. Diese ID finde ich dann im Accelerator wieder.
Wenn ich nun die entsprechende Accelerator-Resource anschaue, ist diese unter anderem mit ID: IDC_BUTTON_IOTEST_GENERIC_01 und Key: VK_F1 festgelegt.
Gruß
Dirk
-
Dann musst Du auch Code haben, in dem Du diesen Accelerator verwendest, dann musst Du diesen Accelerator auch selbst durchsuchen.
Benutzerdefinierte Accelerator berücksichtigt Windows selbst ja nicht, außer Du baust eigenen Code drum herum.