Freigeben über


Ereignissenkenzuordnungen

Wenn ein eingebettetes OLE-Steuerelement ein Ereignis auslöst, empfängt der Container des Steuerelements das Ereignis mithilfe eines Mechanismus, der als "Ereignissenkenzuordnung" bezeichnet wird, die von MFC bereitgestellt wird. Diese Ereignissenkezuordnung bestimmt Handlerfunktionen für jedes bestimmte Ereignis sowie Parameter dieser Ereignisse. Weitere Informationen zu Ereignissenkenzuordnungen finden Sie im Artikel ActiveX-Steuerelementcontainer.

Ereignissenkenzuordnungen

Name Beschreibung
BEGIN_EVENTSINK_MAP Startet die Definition einer Ereignissenkenzuordnung.
DECLARE_EVENTSINK_MAP Deklariert eine Ereignissenkenzuordnung.
END_EVENTSINK_MAP Beendet die Definition einer Ereignissenkenzuordnung.
ON_EVENT Definiert einen Ereignishandler für ein bestimmtes Ereignis.
ON_EVENT_RANGE Definiert einen Ereignishandler für ein bestimmtes Ereignis, das aus einer Reihe von OLE-Steuerelementen ausgelöst wird.
ON_EVENT_REFLECT Empfängt Ereignisse, die vom Steuerelement ausgelöst werden, bevor sie vom Container des Steuerelements behandelt werden.
ON_PROPNOTIFY Definiert einen Handler zum Behandeln von Eigenschaftenbenachrichtigungen aus einem OLE-Steuerelement.
ON_PROPNOTIFY_RANGE Definiert einen Handler für die Behandlung von Eigenschaftenbenachrichtigungen aus einer Reihe von OLE-Steuerelementen.
ON_PROPNOTIFY_REFLECT Empfängt Eigenschaftenbenachrichtigungen, die vom Steuerelement gesendet werden, bevor sie vom Container des Steuerelements behandelt werden.

BEGIN_EVENTSINK_MAP

Beginnt mit der Definition der Ereignissenkenzuordnung.

BEGIN_EVENTSINK_MAP(theClass, baseClass)

Parameter

theClass
Gibt den Namen der Steuerelementklasse an, deren Ereignissenkenzuordnung dies ist.

baseClass
Gibt den Namen der Basisklasse der Klasse an.

Hinweise

Starten Sie in der Implementierungsdatei (.cpp), die die Memberfunktionen für Ihre Klasse definiert, die Ereignissenkenzuordnung mit dem BEGIN_EVENTSINK_MAP Makro, fügen Sie dann Makroeinträge für jedes Ereignis hinzu, über das sie benachrichtigt werden soll, und schließen Sie die Ereignissenkenzuordnung mit dem END_EVENTSINK_MAP Makro ab.

Weitere Informationen zu Ereignissenkenzuordnungen und OLE-Steuerelementcontainern finden Sie im Artikel ActiveX-Steuerelementcontainer.

Anforderungen

Header afxdisp.h

DECLARE_EVENTSINK_MAP

Ein OLE-Container kann eine Ereignissenkezuordnung bereitstellen, um die Ereignisse anzugeben, über die Ihr Container benachrichtigt wird.

DECLARE_EVENTSINK_MAP()

Hinweise

Verwenden Sie das DECLARE_EVENTSINK_MAP Makro am Ende der Klassendeklaration. Dann in der . CPP-Datei, die die Memberfunktionen für die Klasse definiert, das BEGIN_EVENTSINK_MAP Makro, Makroeinträge für jedes der Ereignisse, die benachrichtigt werden sollen, und das END_EVENTSINK_MAP Makro, um das Ende der Ereignissenkenliste zu deklarieren.

Weitere Informationen zu Ereignissenkenzuordnungen finden Sie im Artikel ActiveX-Steuerelementcontainer.

Anforderungen

Header afxwin.h

END_EVENTSINK_MAP

Beendet die Definition der Ereignissenkenzuordnung.

END_EVENTSINK_MAP()

Anforderungen

Header afxdisp.h

ON_EVENT

Verwenden Sie das ON_EVENT Makro, um eine Ereignishandlerfunktion für ein Ereignis zu definieren, das von einem OLE-Steuerelement ausgelöst wird.

ON_EVENT(theClass, id, dispid, pfnHandler,  vtsParams)

Parameter

theClass
Die Klasse, zu der diese Ereignissenkennkarte gehört.

id
Die Steuerelement-ID des OLE-Steuerelements.

dispid
Die Verteiler-ID des Ereignisses, das vom Steuerelement ausgelöst wird.

pfnHandler
Zeiger auf eine Memberfunktion, die das Ereignis behandelt. Diese Funktion sollte über einen BOOL-Rückgabetyp und Parametertypen verfügen, die den Parametern des Ereignisses entsprechen (siehe vtsParams). Die Funktion sollte WAHR zurückgeben, um anzugeben, dass das Ereignis behandelt wurde. andernfalls FALSE.

vtsParams
Eine Abfolge von VTS_ Konstanten, die die Typen der Parameter für das Ereignis angibt. Dies sind die gleichen Konstanten, die in Verteilerzuordnungseinträgen wie DISP_FUNCTION verwendet werden.

Hinweise

Das Argument vtsParams ist eine durch Leerzeichen getrennte Liste von Werten aus den VTS_ Konstanten. Mindestens einer dieser Werte, die durch Leerzeichen (keine Kommas) getrennt sind, gibt die Parameterliste der Funktion an. Zum Beispiel:

VTS_I2 VTS_BOOL

Gibt eine Liste an, die eine kurze ganze Zahl gefolgt von einer BOOL enthält.

Eine Liste der VTS_ Konstanten finden Sie unter EVENT_CUSTOM.

Anforderungen

Header afxdisp.h

ON_EVENT_RANGE

Verwenden Sie das makro ON_EVENT_RANGE, um eine Ereignishandlerfunktion für ein Ereignis zu definieren, das von jedem OLE-Steuerelement ausgelöst wird, das eine Steuerelement-ID innerhalb eines zusammenhängenden Bereichs von IDs aufweist.

ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler,  vtsParams)

Parameter

theClass
Die Klasse, zu der diese Ereignissenkennkarte gehört.

idFirst
Die Steuerelement-ID des ersten OLE-Steuerelements im Bereich.

idLast
Die Steuerelement-ID des letzten OLE-Steuerelements im Bereich.

dispid
Die Verteiler-ID des Ereignisses, das vom Steuerelement ausgelöst wird.

pfnHandler
Zeiger auf eine Memberfunktion, die das Ereignis behandelt. Diese Funktion sollte über einen BOOL-Rückgabetyp, einen ersten Parameter vom Typ UINT (für die Steuerelement-ID) und zusätzliche Parametertypen verfügen, die den Parametern des Ereignisses entsprechen (siehe vtsParams). Die Funktion sollte WAHR zurückgeben, um anzugeben, dass das Ereignis behandelt wurde. andernfalls FALSE.

vtsParams
Eine Abfolge von VTS_ Konstanten, die die Typen der Parameter für das Ereignis angibt. Die erste Konstante sollte vom Typ VTS_I4 sein, für die Steuerelement-ID. Dies sind die gleichen Konstanten, die in Verteilerzuordnungseinträgen wie DISP_FUNCTION verwendet werden.

Hinweise

Das Argument vtsParams ist eine durch Leerzeichen getrennte Liste von Werten aus den VTS_ Konstanten. Mindestens einer dieser Werte, die durch Leerzeichen (keine Kommas) getrennt sind, gibt die Parameterliste der Funktion an. Zum Beispiel:

VTS_I2 VTS_BOOL

Gibt eine Liste an, die eine kurze ganze Zahl gefolgt von einer BOOL enthält.

Eine Liste der VTS_ Konstanten finden Sie unter EVENT_CUSTOM.

Beispiel

Im folgenden Beispiel wird ein Ereignishandler für das MouseDown-Ereignis veranschaulicht, das für drei Steuerelemente implementiert ist ( IDC_MYCTRL1 bis IDC_MYCTRL3). Die Ereignishandlerfunktion , OnRangeMouseDownwird in der Headerdatei der Dialogklasse ( CMyDlg) als:

BOOL OnRangeMouseDown(UINT CtlID, short MouseButton, short Shift,
   long x, long y);

Der folgende Code wird in der Implementierungsdatei der Dialogklasse definiert.

BEGIN_EVENTSINK_MAP(CMyDlg, CDialog)
   ON_EVENT_RANGE(CMyDlg, IDC_MYCTRL1, IDC_MYCTRL3, -605, OnRangeMouseDown,
      VTS_I4 VTS_I2 VTS_I2 VTS_I4 VTS_I4)
END_EVENTSINK_MAP()

Anforderungen

Header afxdisp.h

ON_EVENT_REFLECT

Das ON_EVENT_REFLECT Makro empfängt bei Verwendung in der Ereignissenkezuordnung der Wrapperklasse eines OLE-Steuerelements Ereignisse, die vom Steuerelement ausgelöst werden, bevor sie vom Container des Steuerelements behandelt werden.

ON_EVENT_REFLECT(theClass,  dispid, pfnHandler,  vtsParams)

Parameter

theClass
Die Klasse, zu der diese Ereignissenkennkarte gehört.

dispid
Die Verteiler-ID des Ereignisses, das vom Steuerelement ausgelöst wird.

pfnHandler
Zeiger auf eine Memberfunktion, die das Ereignis behandelt. Diese Funktion sollte einen BOOL-Rückgabetyp und Parametertypen aufweisen, die den Parametern des Ereignisses entsprechen (siehe vtsParams). Die Funktion sollte WAHR zurückgeben, um anzugeben, dass das Ereignis behandelt wurde. andernfalls FALSE.

vtsParams
Eine Abfolge von VTS_ Konstanten, die die Typen der Parameter für das Ereignis angibt. Dies sind die gleichen Konstanten, die in Verteilerzuordnungseinträgen wie DISP_FUNCTION verwendet werden.

Hinweise

Das Argument vtsParams ist eine durch Leerzeichen getrennte Liste von Werten aus den VTS_ Konstanten.

Mindestens einer dieser Werte, die durch Leerzeichen (keine Kommas) getrennt sind, gibt die Parameterliste der Funktion an. Zum Beispiel:

VTS_I2 VTS_BOOL

Gibt eine Liste an, die eine kurze ganze Zahl gefolgt von einer BOOL enthält.

Eine Liste der VTS_ Konstanten finden Sie unter EVENT_CUSTOM.

Anforderungen

Header afxdisp.h

ON_PROPNOTIFY

Verwenden Sie das makro ON_PROPNOTIFY, um einen Ereignissenkennzuordnungseintrag zum Behandeln von Eigenschaftenbenachrichtigungen aus einem OLE-Steuerelement zu definieren.

ON_PROPNOTIFY(theClass, id, dispid, pfnRequest, pfnChanged)

Parameter

theClass
Die Klasse, zu der diese Ereignissenkennkarte gehört.

id
Die Steuerelement-ID des OLE-Steuerelements.

dispid
Die Verteiler-ID der Eigenschaft, die an der Benachrichtigung beteiligt ist.

pfnRequest
Zeiger auf eine Memberfunktion, die die OnRequestEdit Benachrichtigung für diese Eigenschaft behandelt. Diese Funktion sollte einen BOOL-Rückgabetyp und einen BOOL-Parameter* aufweisen. Diese Funktion sollte den Parameter auf TRUE festlegen, damit die Eigenschaft geändert werden kann und FALSE nicht zulässig ist. Die Funktion sollte WAHR zurückgeben, um anzugeben, dass die Benachrichtigung behandelt wurde. andernfalls FALSE.

pfnChanged
Zeiger auf eine Memberfunktion, die die OnChanged Benachrichtigung für diese Eigenschaft behandelt. Die Funktion sollte einen BOOL-Rückgabetyp und einen UINT-Parameter aufweisen. Die Funktion sollte WAHR zurückgeben, um anzugeben, dass die Benachrichtigung verarbeitet wurde. andernfalls FALSE.

Hinweise

Das Argument vtsParams ist eine durch Leerzeichen getrennte Liste von Werten aus den VTS_ Konstanten. Mindestens einer dieser Werte, die durch Leerzeichen (keine Kommas) getrennt sind, gibt die Parameterliste der Funktion an. Zum Beispiel:

VTS_I2 VTS_BOOL

Gibt eine Liste an, die eine kurze ganze Zahl gefolgt von einer BOOL enthält.

Eine Liste der VTS_ Konstanten finden Sie unter EVENT_CUSTOM.

ON_PROPNOTIFY_RANGE

Verwenden Sie das makro ON_PROPNOTIFY_RANGE, um einen Ereignissenkennzuordnungseintrag für die Behandlung von Eigenschaftenbenachrichtigungen von jedem OLE-Steuerelement mit einer Steuerelement-ID innerhalb eines zusammenhängenden Bereichs von IDs zu definieren.

ON_PROPNOTIFY_RANGE(theClass, idFirst, idLast, dispid, pfnRequest, pfnChanged)

Parameter

theClass
Die Klasse, zu der diese Ereignissenkennkarte gehört.

idFirst
Die Steuerelement-ID des ersten OLE-Steuerelements im Bereich.

idLast
Die Steuerelement-ID des letzten OLE-Steuerelements im Bereich.

dispid
Die Verteiler-ID der Eigenschaft, die an der Benachrichtigung beteiligt ist.

pfnRequest
Zeiger auf eine Memberfunktion, die die OnRequestEdit Benachrichtigung für diese Eigenschaft behandelt. Diese Funktion sollte über einen BOOL Rückgabetyp und parameter BOOL* UINT verfügen. Die Funktion sollte den Parameter auf TRUE festlegen, damit die Eigenschaft geändert werden kann, und FALSE nicht zulässig ist. Die Funktion sollte WAHR zurückgeben, um anzugeben, dass die Benachrichtigung verarbeitet wurde. andernfalls FALSE.

pfnChanged
Zeiger auf eine Memberfunktion, die die OnChanged Benachrichtigung für diese Eigenschaft behandelt. Die Funktion sollte einen BOOL Rückgabetyp und einen UINT Parameter aufweisen. Die Funktion sollte WAHR zurückgeben, um anzugeben, dass die Benachrichtigung verarbeitet wurde. andernfalls FALSE.

Anforderungen

Header afxdisp.h

ON_PROPNOTIFY_REFLECT

Das ON_PROPNOTIFY_REFLECT Makro, das in der Ereignissenkenzuordnung der Wrapperklasse eines OLE-Steuerelements verwendet wird, empfängt Eigenschaftenbenachrichtigungen, die vom Steuerelement gesendet werden, bevor sie vom Container des Steuerelements behandelt werden.

ON_PROPNOTIFY_REFLECT(theClass, dispid, pfnRequest, pfnChanged)

Parameter

theClass
Die Klasse, zu der diese Ereignissenkennkarte gehört.

dispid
Die Verteiler-ID der Eigenschaft, die an der Benachrichtigung beteiligt ist.

pfnRequest
Zeiger auf eine Memberfunktion, die die OnRequestEdit Benachrichtigung für diese Eigenschaft behandelt. Diese Funktion sollte einen BOOL-Rückgabetyp und einen BOOL-Parameter* aufweisen. Diese Funktion sollte den Parameter auf TRUE festlegen, damit die Eigenschaft geändert werden kann und FALSE nicht zulässig ist. Die Funktion sollte WAHR zurückgeben, um anzugeben, dass die Benachrichtigung behandelt wurde. andernfalls FALSE.

pfnChanged
Zeiger auf eine Memberfunktion, die die OnChanged Benachrichtigung für diese Eigenschaft behandelt. Die Funktion sollte einen BOOL-Rückgabetyp und keine Parameter aufweisen. Die Funktion sollte WAHR zurückgeben, um anzugeben, dass die Benachrichtigung behandelt wurde. andernfalls FALSE.

Anforderungen

Header afxdisp.h

Siehe auch

Makros und Globalen