ON_EVENT_RANGE
使用 ON_EVENT_RANGE 巨集定義所有 OLE automation 控制項引發的事件建立事件處理常式會在 ID 內的連續範圍的控制項 ID。
ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler, vtsParams )
參數
theClass
這個事件接收對應所屬的類別。idFirst
第一個 OLE automation 控制項範圍中的控制項 ID 。idLast
最後一個 OLE automation 控制項範圍中的控制項 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