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.
-
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 11000aber 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