Auf Buttonereignisse reagieren



  • Hallo zusammen,

    ich habe eine MFC-Anwendung (CFormView) mit dynamischen Buttons erstellt und das funktioniert auch wunderbar.
    Der nächste Schritt wäre "auf die Buttonereignisse zu reagieren".
    Wie kann ich hier die Button-Klicks empfangen, um dann die entsprechenden Aktionen auszulösen?

    Danke.


  • Mod

    Nun Du musst Deinen Buttons IDs vergeben. Mit ON_COMMAND_RANGE kanst Du dann auf diese IDs reagieren.
    Oder Du überschreibst OnCommand (was ich nicht so gut finde).



  • Ich habe als erstes einen Bereich von ID's für die Buttons reserviert.

    #define B_FIRST_ID 10000
    #define B_LAST_ID	11000
    

    aber wie kann ich die ID für den angeklickten Button ermitteln?



  • Die Handler-Funktion, die du bei ON_COMMAND_RANGE oder ON_CONTROL_RANGE angibst, bekommt diese ID als Parameter mitgegeben.



  • Der Code würde dann so ausschauen:

    BEGIN_MESSAGE_MAP(CMyApp, CWinApp)
        ...
        ON_CONTROL_RANGE(BN_CLICKED, ID_B_FISRT, ID_B_LAST, OnAktionAusfuehren)
    END_MESSAGE_MAP( )
    
    void OnAktionAusfuehren( UINT nID )
    {
        int nButton = nID;  // nID konvertieren
    
        // Aktion asuführen
        ......
    }
    

    stimmt das so?
    Danke


Anmelden zum Antworten