aktionen bei RegisterHotKey



  • Also ich hab mir den kram in den faq zu RegisterHotKey angeschaut und das funzt auch soweit. aber wie kann ich abfragen welcher der hotkeys gedrückt wurde? also dass bei drücken von F1 was anderes passiert als bei F2

    schonma danke für eure hilfe.



  • Ohne das getestet zu haben denke ich mal, dass du Msg auswerten musst. Pseudocode:

    if (Msg.WParam == F1)
      DoSomething();
    else if (Msg.LParam == F2)
      DoSomethingElse();
    


  • Kleine Ergänzung zu deinem Beitrag, Jansen:

    biglord, wenn du dir in der Windows SDK-Hilfe die Dokumentation zu WM_HOTKEY ansiehst, dürfte es zu einer Erleuchtung führen. (o;

    -junix



  • danke für eure hilfe 🙂



  • also..sry erstma das ich wieder mit ner wahrscheinlich dummen frage komme..
    also der pseudo code is ja ganz gut un schön aber..ich bekomms einfach net gebacken...wie fang ich denn WM_HOTKEY ab? oder werte die Msg aus? also am besten konkret anhand des beispieles aus den FAQ von Junix. danke für eure hilfe.



  • Hier werden die Parameter von WM_HOTKEY ja beschrieben. Interessant ist für dich dieser Teil:

    The low-order word specifies the keys that were to be pressed in combination with the key specified by the high-order word to generate the WM_HOTKEY message.

    Eine Liste der Virtual Key-Codes findest du ebenfalls in der MSDN. Aber als geheimtip: Die Konstanten sind grundsätzlich immer der Tastenname mit dem Präfix "VK_" (also z.B. VK_F1).

    -junix



  • ja des hatte ich verstanden dass da der keycode gespeichert ist. aber..
    es heisst ja die WM_HOTKEY nachricht kommt wenn ein hotkey gedrückt wurde. aber wie kann ich die nachricht denn abfangen??
    hab auf ner andern seite den code hier gefunden

    ON_MESSAGE(WM_HOTKEY,OnHotKey)
    

    aber ka ob ich damit was anfangen kann..ich konnts jedenfalls net..
    also wie komm ich denn jetz an den wert wParam aus WM_HOTKEY ran, in dem mein hotkey identifier steht? 😕



  • Der FAQ-Eintrag unter dem Abschnitt "Tasten" ist dir bekannt? (Systemweite Hotkeys à la ICQ)

    ON_MESSAGE ist MSVC-Krux das will keiner (o;

    Kannst in neueren BCBs glaub ich auch mit dem MethodenAssistent direkt Nachrichtenhandler einrichten lassen.

    -junix



  • k thx. ich habs jetz gelöst, zwar net so elegant glaub ich, schaut so aus:

    void __fastcall TForm1::WMHotKey(TMessage &Msg)
    {
        TForm::Dispatch(&Msg);
            //--TODO: Gewünschten Code einfügen
       switch (Msg.LParamHi)
              {
              case 112: ShowMessage("F1");
              break;
              case 113: ShowMessage("F2");
              break;
              }
    }
    

    ka ob des so richtig gelöst is aber so gehts auch..;)
    thx nochma.


Anmelden zum Antworten