ON_EVENT_RANGE
Verwenden Sie das ON_EVENT_RANGE-Makro, um eine Ereignishandlerfunktion für ein Ereignis definiert, das über ein OLE-Steuerelement ausgelöst wird, das eine Steuerelement-ID in einem zusammenhängenden Bereich von IDs hat.
ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler, vtsParams )
Parameter
theClass
Die Klasse, der diese Ereignissenkenzuordnung gehört.idFirst
Die Steuerelement-ID des ersten OLE-Steuerelements im Bereich.idLast
Die Steuerelement-ID des letzten OLE-Steuerelements im Bereich.dispid
Die Dispatch-ID des Ereignisses löste die durch das Steuerelement aus.pfnHandler
Zeiger auf eine Memberfunktion, die das Ereignis behandelt. Diese Funktion sollte ein BOOL Rückgabetyp, einen ersten Parameter des Typs UINT (für die Steuerelement-ID) und zusätzliche Parametertypen verfügen, die die Parameter des Ereignisses entsprechen (siehe vtsParams). Die Funktion darf TRUE zurückgeben, um das Ereignis angeben wurde behandelt; andernfalls FALSE.vtsParams
Eine Sequenz von VTS_ Konstanten, die den Typen der Parameter zum Ereignis angibt. Die erste Konstante muss vom Typ VTS_I4, für die Steuerelement-ID sein Dies sind die gleichen Konstanten, die in den Dispatchzuordnungseinträgen wie DISP_FUNCTION verwendet werden.
Hinweise
Das Argument vtsParams ist eine durch Leerzeichen getrennte Liste von Werten aus den VTS_ Konstanten. Eine oder mehrere dieser Werte, die durch Leerzeichen getrennt werden (nicht durch) gibt der Parameterliste der Funktion an. Beispiel:
VTS_I2 VTS_BOOL
gibt eine Liste, die eine kurze ganze Zahl enthält, die von BOOL folgt.
Eine Liste der VTS_ Konstanten, finden Sie unter EVENT_CUSTOM.
Beispiel
Das folgende Beispiel zeigt einen Ereignishandler, zum MouseDown-Ereignis, implementiert für drei Steuerelemente (IDC_MYCTRL1 von IDC_MYCTRL3). Die Ereignishandlerfunktion, OnRangeMouseDown, wird in der Headerdatei der Dialogfeldklasse (CMyDlg) z deklariert:
BOOL OnRangeMouseDown(UINT CtlID, short MouseButton, short Shift,
long x, long y);
Der folgende Code wird in der Implementierungsdatei der Dialogfeldklasse 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