Freigeben über


MFC-ActiveX-Steuerelemente: Hinzufügen von vordefinierten Ereignissen zu einem ActiveX-Steuerelement

Vordefinierte Ereignisse unterscheiden sich von benutzerdefinierten Ereignissen, da sie automatisch durch Klasse COleControl ausgelöst werden. COleControl enthält vordefinierte Memberfunktionen, die Ereignisse auslösen, erstellten über allgemeine Aktionen. Einige allgemeine Aktionen, die von COleControl implementiert werden, gehören von Einzel- und Doppelklicke auf dem Steuerelement, den Tastaturereignissen und Änderungen im Zustand der Maustasten. Ereigniszuordnungseinträge für vordefinierte Ereignisse werden immer vom EVENT_STOCK Präfix vorangestellt.

Vordefinierte Ereignisse unterstützt im Assistenten zum Hinzufügen von Ereignissen

Die COleControl-Klasse stellt zehn vordefinierte Ereignisse, aufgeführt in der folgenden Tabelle. Sie können die Ereignisse festlegen, die Sie im Steuerelement mit Assistent zum Hinzufügen von Ereignissen möchten.

Vordefinierte Ereignisse

Ereignis

Auslösen von Funktion

Kommentare

Auszuwählende Option

ungültiges FireClick()

Ausgelöste, wenn das Steuerelement die Maus erfasst wird, entweder BUTTONUP (links, Mitte oder rechts) Nachricht empfangen wird, und die Schaltfläche wird über dem Steuerelement freigegeben. Die vordefinierten Ereignisse MouseDown und MouseUp treten vor diesem Ereignis auf.

Ereigniszuordnungseintrag: EVENT_STOCK_CLICK( )

DblClick

ungültiges FireDblClick()

Ähnlich wie Klick jedoch ausgelöst, wenn eine BUTTONDBLCLK Meldung empfängt.

Ereigniszuordnungseintrag: EVENT_STOCK_DBLCLICK( )

Fehler

void FireError( SCODE scode, LPCSTR lpszDescription, UINT nHelpID = 0 )

Wird ausgelöst, wenn ein Fehler in des ActiveX-Steuerelements außerhalb des Bereichs eines Methodenaufrufs oder des Eigenschaftenzugriffs auftritt.

Ereigniszuordnungseintrag: EVENT_STOCK_ERROREVENT( )

KeyDown

void FireKeyDown( short nChar, short nShiftState )

Wird ausgelöst, wenn WM_SYSKEYDOWN oder WM_KEYDOWN eine Meldung empfängt.

Ereigniszuordnungseintrag: EVENT_STOCK_KEYDOWN( )

KeyPress

void FireKeyPress( short* pnChar )

Wird ausgelöst, wenn WM_CHAR eine Meldung empfängt.

Ereigniszuordnungseintrag: EVENT_STOCK_KEYPRESS( )

KeyUp

void FireKeyUp( short nChar, short nShiftState )

Wird ausgelöst, wenn WM_SYSKEYUP oder WM_KEYUP eine Meldung empfängt.

Ereigniszuordnungseintrag: EVENT_STOCK_KEYUP( )

MouseDown

void FireMouseDown( short nButton, short nShiftState, float xy ), float

Ausgelöstes ggf. BUTTONDOWN (links, Mitte oder rechts) empfangen wird. Die Maus wird aufgezeichnet, unmittelbar bevor das Ereignis ausgelöst wird.

Ereigniszuordnungseintrag: EVENT_STOCK_MOUSEDOWN( )

MouseMove

void FireMouseMove( short nButton, short nShiftState, float xy ), float

Wird ausgelöst, wenn WM_MOUSEMOVE eine Meldung empfängt.

Ereigniszuordnungseintrag: EVENT_STOCK_MOUSEMOVE( )

MouseUp

void FireMouseUp( short nButton, short nShiftState, float xy ), float

Ausgelöstes ggf. BUTTONUP (links, Mitte oder rechts) empfangen wird. Die Mausauswahl wird freigegeben, bevor das Ereignis ausgelöst wird.

Ereigniszuordnungseintrag: EVENT_STOCK_MOUSEUP( )

ReadyStateChange

ungültiges FireReadyStateChange()

Wird ausgelöst, als Steuerelement zum nächsten Zustand Bereit aufgrund der Datenmenge erhalten.

Ereigniszuordnungseintrag: EVENT_STOCK_READYSTATECHANGE( )

Hinzufügen eines vordefinierten Ereignisses mithilfe des Assistenten zum Hinzufügen von Ereignissen

Das Hinzufügen vordefinierter Ereignissen erfordert weniger Arbeitsaufgaben, als benutzerdefinierten Ereignissen, da die Auslösung des tatsächlichen Ereignisses automatisch durch die Basisklasse, behandelt werden COleControl hinzugefügt. In der folgenden Prozedur fügt einem vordefinierten Ereignis ein Steuerelement hinzu, das mit MFC-ActiveX-Steuerelement-Assistent entwickelt wurde. Das Ereignis, aufgerufen KeyPress, wird ausgelöst, wenn eine Taste gedrückt wird und welches Steuerelement aktiv ist. Diese Prozedur kann auch verwendet werden, um andere vordefinierte Ereignisse hinzuzufügen. Ersetzen Sie den ausgewählten vordefinierten Ereignisnamen für KeyPress.

Um das KeyPress hinzuzufügen vorrätigen Artikel Sie Ereignis mithilfe des Assistenten zum Hinzufügen von Ereignissen

  1. Laden Sie das Projekt des Steuerelements.

  2. Klicken Sie in der Klassenansicht auf die ActiveX-Steuerelementklasse mit der rechten Maustaste, um das Kontextmenü zu öffnen.

  3. Klicken Sie im Kontextmenü auf Hinzufügen und dann auf Ereignis hinzufügen.

    Dadurch wird der Assistent zum Hinzufügen von Ereignissen.

  4. In der Dropdownliste Ereignisname Option KeyPress aus.

  5. Klicken Sie auf Fertig stellen.

Assistent zum Hinzufügen von Ereignissenen-Änderungen für vordefinierte Ereignisse

Da vordefinierte Ereignisse durch die Basisklasse des Steuerelements behandelt werden, ändert der Assistent zum Hinzufügen von Ereignissen nicht die Klassendeklaration in jeder Hinsicht. Sie fügt das Ereignis der Ereigniszuordnung des Steuerelements hinzu und macht einen Eintrag in die IDL-Datei. In der folgenden Zeile wird der Ereigniszuordnung des Steuerelements hinzugefügt, in der Steuerelementklasse (.CPP):

EVENT_STOCK_KEYPRESS()

Diesem Code hinzufügen, löst ein KeyPress-Ereignis aus, wenn WM_CHAR eine Meldung ist und welches Steuerelement aktiv ist. Das KeyPress-Ereignis kann indem seine Auslösenfunktion (beispielsweise FireKeyPress), aus dem Steuerelementcode zu anderen Zeiten ausgelöst werden, aufgerufen.

Der Assistent zum Hinzufügen von Ereignissen wird die folgende Codezeile der IDL-Datei des Steuerelements hinzu:

[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);

Diese Zeile ordnet das KeyPress-Ereignis mit der Standarddispatch-id zu und der Container, um das KeyPress-Ereignis vorauszusehen.

Siehe auch

Referenz

COleControl-Klasse

Konzepte

MFC-ActiveX-Steuerelemente

MFC-ActiveX-Steuerelemente: Methoden