Use the ON_EVENT_RANGE macro to define an event handler function for an event fired by any OLE control having a control ID within a contiguous range of IDs.
ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler, vtsParams )
- The class to which this event sink map belongs.
- The control ID of the first OLE control in the range.
- The control ID of the last OLE control in the range.
- The dispatch ID of the event fired by the control.
- Pointer to a member function that handles the event. This function should have a BOOL return type, a first parameter of type UINT (for the control ID), and additional parameter types that match the event's parameters (see vtsParams). The function should return TRUE to indicate the event was handled; otherwise FALSE.
- A sequence of VTS_ constants that specifies the types of the parameters for the event. The first constant should be of type VTS_I4, for the control ID. These are the same constants that are used in dispatch map entries such as DISP_FUNCTION.
The vtsParams argument is a space-separated list of values from the VTS_ constants. One or more of these values separated by spaces (not commas) specifies the function's parameter list. For example:
specifies a list containing a short integer followed by a BOOL.
For a list of the VTS_ constants, see EVENT_CUSTOM.
The following example demonstrates an event handler, for the MouseDown event, implemented for three controls (
IDC_MYCTRL3). The event handler function,
OnRangeMouseDown, is declared in the header file of the dialog class (
BOOL OnRangeMouseDown(UINT CtlID, short MouseButton, short Shift, long x, long y);
The code below is defined in the implementation file of the dialog class.
// example for ON_EVENT_RANGE 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()