dinputを使用した時MessageBoxのボタンが押せなくなる

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mnmndhh
記事: 1
登録日時: 3年前

dinputを使用した時MessageBoxのボタンが押せなくなる

#1

投稿記事 by mnmndhh » 3年前

初めまして。タイトル通りなのですが、dinputを使用してキーが押されたときMessageBoxを表示するプログラムを実行した時ボタンが押せなくなります。試しにif文をコメントアウトすると押せるようにます。どうしたらボタンが押せるようになりますか。

コードで表したらこんな感じになります。

コード:

if (keys.GetKeyValue(DIK_G))
{
	MessageBoxA(nullptr, "test", "title", MB_OKCANCEL);
}
このコードをif文をコメントアウトするとメッセージボックスのボタンが押せるようになります。

コード:

// if (keys.GetKeyValue(DIK_G))
{
	MessageBoxA(nullptr, "test", "title", MB_OKCANCEL);
}
ちなみに、キーの状態取得のコードはこうなってます。

コード:

bool Keyboard::GetKeyValue( int key) const
{
	return mCurrKeyboard[key] & 0x80;
}
https://gamedev.net/forums/topic/357908 ... d/3350317/
上記のサイトの方も同じような症状でしたので、メッセージボックスを表示する前にUnacuireを挟んでも解決しませんでした。

参照魚
記事: 109
登録日時: 6年前

Re: dinputを使用した時MessageBoxのボタンが押せなくなる

#2

投稿記事 by 参照魚 » 3年前

問題がある場所は提示されているコードの周りではなく、DirectInputの初期化と毎ループの入力読み取り周りだと思われます。もしDirectInput周りが何かしらのライブラリィでラッピングされているのであれば、そのライブラリィとmCurrKeyboardの接続部分にあるとおもいます。

返信

“C言語何でも質問掲示板” へ戻る