ON_EVENT_RANGE
ON_EVENT_RANGE マクロを使って、連続した ID の範囲内の、コントロール 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_ 定数のリストです。 スペース (コンマではありません) で区切られた 1 つ以上の値は、関数のパラメーターを示します。 次に例を示します
VTS_I2 VTS_BOOL
この例では、short 型の整数とそれに続く BOOL 型の値を持つリストを指定しています。
VTS_ 定数の一覧については、「EVENT_CUSTOM」を参照してください。
使用例
MouseDown イベントのイベント ハンドラーの例を次に示します。3 つのコントロール (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