トップページ > 記事閲覧
キー入力ハンドルとキー状態取得両立
名前:困ってます 日時: 2016/03/26 11:03

勉強もかねて簡易的な入力ボックスを作ろうとしてたのですが。 その際にキー入力ハンドルとキー状態取得系の関数を両立させようとするとバグが起きるのですがどうすれば良いのでしょうか? 具体的にはキー入力を作成させてあると、キー状態取得系の関数で調べた時押していないキーも押してあると認識されてしまうのです。
メンテ

Page: 1 |

Re: キー入力ハンドルとキー状態取得両立 ( No.1 )
名前:管理人 日時:2016/03/27 22:10

> 具体的にはキー入力を作成させてあると、キー状態取得系の関数で調べた時押していないキーも押してあると認識されてしまうのです。 具体的にはどちらのキーでしょうか? こんなプログラムを組んでキーの状態一覧を見てみたのですが #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int i, j ; int InputHandle ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; SetUseDirectInputFlag( FALSE ) ; SetEnableXAudioFlag( FALSE ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; InputHandle = MakeKeyInput( 256, FALSE, FALSE, FALSE ) ; // メインループ(何かキーが押されたらループを抜ける) while( ProcessMessage() == 0 ) { // 画面のクリア ClearDrawScreen() ; for( i = 0 ; i < 16 ; i ++ ) { for( j = 0 ; j < 16 ; j ++ ) { DrawString( j * 32, i * 16, CheckHitKey( i * 16 + j ) ? "ON" : "OFF", GetColor( 255,255,255 ) ) ; } } // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } 特にキー入力ハンドルを作成しているかどうかで結果は変わりませんでした ( 因みに「半角/全角」キーや「F10」キーのように「一度押すとずっとONのままになる」 といった特殊なキーもありますが、それはキー入力ハンドルの作成とは関係がなく 常にそのような挙動をします )
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存