次の方法で共有


ON_EVENT_RANGE

更新 : 2007 年 11 月

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_ 定数。最初の定数は、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

参照

概念

MFC マクロとグローバル

参照

ON_EVENT

ON_PROPNOTIFY

ON_PROPNOTIFY_RANGE