使用 ON_EVENT_RANGE 宏定义任何 OLE 控件激发的事件的事件处理程序函数在 ID 中的一个连续范围的控件 ID。
ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler, vtsParams )
参数
theClass
此事件接收器映射所属的类。idFirst
第一个 OLE 控件的控件 ID 在的大小。idLast
最后 OLE 控件的控件 ID 在的大小。dispid
控件激发的事件的调度 ID。pfnHandler
对该成员函数的指针处理事件。此函数应具有 BOOL 返回类型、类型 UINT 的第一个参数 (对于控件 ID) 和与事件的参数的附加参数类型 (请参见 vtsParams)。函数应返回 TRUE 一个处理事件的;否则 FALSE。vtsParams
为事件指定参数的类型 VTS_ 常数的序列。第一个常数应为控件的 ID. 的类型 VTS_I4,这些是用于计划映射项例如 DISP_FUNCTION相同的常数。
备注
vtsParams 参数是空格分隔的列表从 VTS_ 常数的值。空格分隔的一个或多个值 (不是逗号) 指定函数的参数列表。例如:
VTS_I2 VTS_BOOL
指定包含一个短整型的列表后跟 BOOL。
有关 VTS_ 常数的列表,请参见 EVENT_CUSTOM。
示例
下面的示例演示一个事件处理程序, MouseDown 事件中,实现三个控件 (IDC_MYCTRL1 通过 IDC_MYCTRL3)。事件处理程序函数, OnRangeMouseDown,对话框类 (CMyDlg) 的头文件中声明如下:
BOOL OnRangeMouseDown(UINT CtlID, short MouseButton, short Shift,
long x, long y);
下面的代码在对话框类中实现文件中定义的。
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()
要求
Header: afxdisp.h