ON_EVENT_RANGE
使用 ON_EVENT_RANGE 宏将为具有一个连续范围的控件 ID 值的 OLE 控件激发的事件定义事件处理程序。
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()
要求
"头部:" afxdisp.h