 | | Wide Studio Programmer's Guide
| |
グローバルキーフックを利用するには
アプリケーションに入力される全てのキーボードイベントを事前に
チェックしたい場合、グローバルキーフックを利用します。
グローバルキーフックは、オブジェクトにキーイベントが配られる前に、
横取りして調べることができます。グローバルキーフックは
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 2.0 For Use with Wide Studio Release 2.0, Spring 2002 Wide Stuido Home | Up to Copyright(C) S. Hirabayashi, 1999-2002 | | Last modified: January 1, 2002 | |