|
C++でキーの上げ下げを感知するときに
ウィンドウプロシージャのWM_KEYDOWN(UP)で調べるのが感覚的に理解出来ないから関数を作ってみた。
WinProc内
case WM_KEYDOWN:
if ( ( 0<= wp ) & ( wp <= 0xFF ) ){
StateOfkey(1,wp,1);//wpキーが押されたことを感知
}
break;
case WM_KEYUP:
if ( ( 0<= wp ) & ( wp <= 0xFF ) ){
StateOfkey(1,wp,0);//wpキーが離されたことを感知
}
break;
StateOfkey内(ネーミングセンスが悪いのは見逃してください。 INT StateOfkey ( int input , int port , int msg ) {//input入力出力切り替え キー番号 入力時のための入力情報
static int data[256] = {0}; // データ管理用
//port 0 = 離された 1 = 押された
// input 1 入力 0 出力
if ( input == 1 ){//入力
data[port] = msg;
return -1;
}
if ( input == 0 ){//出力
return data[port];
}
}
これで、キーが押されているかどうかが、 StateOfkey(0,取得したいキーのキーコード,NULL)とすることで、
戻り値(0なら押されてない、1なら押されている)でキーの状態がわかります。
普通にウィンドウメッセージだけでやればいいのにね…
|

- >
- Yahoo!サービス
- >
- Yahoo!ブログ
- >
- 練習用


