キーボード操作が行われたときに呼ばれるコールバック関数を設定します。
書式
typedef void (* LP_KEYPROC)(CPWindow *,CPSTKeyEvent);
void AttachKeyEvent(LP_KEYPROC KeyEvent);
|
パラメータ
KeyEvent
「void xxxx(CPWindow *,CPSTKeyEvent)」型のstatic関数を指定します。
コールバック関数の第一引数にCPWindowクラスのポインタ、第二引数にキーボードの状態が格納されたCPSTKeyEvent構造体の情報が入ります。
解説
キーボード操作が行われたときに呼ばれるコールバック関数を設定します。
なお、コールバック関数は必ずstaticの静的関数である必要があります。
コールバック関数の第二引数の「CPSTKeyEvent」では、EventCode に「CP_KEYEVENT_KEYDOWN / CP_KEYEVENT_KEYUP」が入ります。
コールバックを解除する場合は「DetachKeyEvent( )」を呼び出してください。
例
ウィンドウ(ダイアログ)を生成して、その中でコールバック関数よりキーボードイベントを取得します。
CPWindow win;
//キーボードイベントを受け取る
static void OnKeyEvent(CPWindow *lpWin,CPSTKeyEvent ev)
{
//キーが押された場合
if(ev.EventCode==CP_KEYEVENT_KEYDOWN)
{
int CharCode;
int KeyData;
//キャラクタコードの取得
CharCode=ev.CharCode;
//同時に押されているキー情報の取得
KeyData=ev.KeyData;
}
}
void main()
{
//ダイアログを生成する
win.Clear();
win.CreateNewDialog("TestDialog",120,120,120,120);
//キーボードイベントのコールバック関数指定
win.AttachKeyEvent(OnKeyEvent);
//ダイアログの表示・イベントループの開始
win.DoModal();
}
この例では、キーボードイベントが発生した場合に、「OnKeyEvent」関数が呼ばれます。
例えば、[Ctrl]キーが押された状態で[a]キーが押されたとき、「CharCode='a' / KeyData=CP_KEY_CTRL_MASK」が入ります。
ビルド時に必要なファイル
ライブラリ
| :CPartsLib.lib (Macintoshの場合は、CPartsCW.a)
|
ヘッダ
| :CPWindow.h
|
関連リンク
CPWindowクラス
CPWindow::DetachKeyEvent