Wide Studio Programmer's Guide

Wide Studio Home
Up to


グローバルキーフックを利用するには

アプリケーションに入力される全てのキーボードイベントを事前に チェックしたい場合、グローバルキーフックを利用します。 グローバルキーフックは、オブジェクトにキーイベントが配られる前に、 横取りして調べることができます。グローバルキーフックは WSDkeyboard クラスのグローバルインスタンスに設定します。
キーボードクラス インスタンスアクセス関数
WSDkeyboard WSGIappKeyboard()


#include <WSDkeyboard.h>
//グローバルキーフックルーチンのサンプル
WSCbool keyhandler(long keycode,WSCbool onoff){
  // keycode : キーコードが渡される
  // onoff   : キーが押されたとき=True, 放されたとき=False
  if (keycode == WSK_F1){
    キーが F1 キーだったら特定処理 ....
    //もしフックしたキーを捨てるならば
    return False; //復帰値=False はキーイベントを捨てる(オブジェクトに配らない)
  }else if (keycode == WSK_F2){
    キーが F2 キーだったら別の特定処理 ....
    //もしフックしたキーを捨てずにオブジェクトに配るならば
    return True; //復帰値=True はキーイベントをオブジェクトに配る...
  }
  return True //復帰値=True はキーイベントをオブジェクトに配る...
}
void event_procedure(WSCbase* obj){
  //グローバルキーフックルーチンの登録
  WSGIappKeyboard()->setGlobalKeyHook( keyhandler );
}

keyhandler() 関数は、ユーザがキーボードイベントを横取りして、 特別に処理をするために用意するグローバルキーフックルーチンです。 WSGIappKeyboard() の setGlobalKeyHook 関数を実行して、 キーボードオブジェクトに登録します。 キーフックルーチンの登録は、通常、初期化トリガで貼られた イベントプロシージャで行います。キーシンボルの定義は、 WSkeysym.h に存在しますので、そちらを御参照下さい。
Document Release 3.00

For Use with Wide Studio Release 3.00, Summper 2002


Wide Stuido Home | Up to

Copyright(C) T. Hirabayashi, 1999-2002 Last modified: June 10, 2002