コールバック

DVKeyMouseからのイベントを処理するにはDVKeyMouseCallbackクラスを継承し,イベントハンドラをオーバライドします. DVKeyMouseCallbackはいくつかのヒューマンインタフェースクラスが継承しているほか, 後述するアプリケーションクラスFWAppも継承しています.

DVKeyMouseCallback

virtual bool

OnMouse(int button, int state, int x, int y)

マウスボタンプッシュ/リリース

virtual bool

OnDoubleClick(int button, int x, int y)

ダブルクリック

virtual bool

OnMouseMove(int button, int x, int y, int zdelta)

マウスカーソル移動/マウスホイール回転

virtual bool

OnKey(int state, int key, int x, int y)

キープッシュ/リリース

OnMouseはマウスボタンのプッシュあるいはリリースが生じたときに呼び出されます. buttonはイベントに関係するマウスボタンおよびいくつかの特殊キーの識別子を保持し, その値はDVButtonMask列挙子の値のOR結合で表現されます. stateはマウスボタン状態変化を示し,DVButtonSt列挙子のいずれかの値を持ちます. xyはイベント生成時のカーソル座標を表します. 例として,左ボタンのプッシュイベントを処理するには次のようにします.

// inside your class definition ...
virtual bool OnMouse(int button, int state, int x, int y){
    if(button & DVButtonMask::LBUTTON && state == DVButtonSt::DOWN){
        // do something here
    }
}

OnDoubleClickはマウスボタンのダブルクリックが生じたときに呼ばれます. 引数の定義はOnMouseと同様です.

OnMouseMoveはマウスカーソルが移動するか,マウスホイールが回転した際に呼ばれます. buttonは直前のマウスプッシュイベントにおいてOnMouseに渡されたのと同じ値を持ちます. x, yは移動後のカーソル座標,zdeltaはマウスカーソルの回転量です.

OnKeyはキーボードのキーがプッシュされるかリリースされた際に呼ばれます. stateDVKeySt列挙子の値を持ちます. keyはプッシュあるいはリリースされたキーの仮想キーコードを保持します.

以下に関連する列挙子の定義を示します.

DVButtonMask

LBUTTON

左ボタン

RBUTTON

右ボタン

MBUTTON

中ボタン

SHIFT

Shiftキー押し下げ

CONTROL

Ctrlキー押し下げ

ALT

Altキー押し下げ

DVButtonSt

DOWN

ボタンプッシュ

UP

ボタンリリース

DVKeySt

PRESSED

押されている

TOGGLE_ON

トグルされている