ページ 11

DXライブラリで変換キーの入力を取得できない

Posted: 2015年3月18日(水) 13:55
by 墨汁
DXライブラリで変換キーが押されていたら「Convert is pressed」と表示されることを期待してこのようなコードを書きました

コード:

#include<DxLib.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
	ChangeWindowMode(TRUE);
	if(DxLib_Init() == -1) return -1;

	while(ProcessMessage() != -1&& ScreenFlip() != -1 && ClearDrawScreen() != -1){
		if(CheckHitKey(KEY_INPUT_SPACE) == 1)
			DrawString(0,0,"Space is pressed",0xFF0000);
		else if(CheckHitKey(KEY_INPUT_CONVERT) == 1)
			DrawString(0,0,"Convert is pressed",0xFF0000);

	}
	DxLib_End();
	return 0;
}
ところがこれを実行してみると自分の環境では変換キーを押しても「Convert is pressed」は表示されません。スペースキーを押したときはちゃんと「Space is pressed」と表示されます。
IMEと競合してるんだろうか?と思い、IMEをMS-IME JPからUSに設定しなおしてもやはり変換キーの入力を取ることはできませんでした。
皆さんの環境で上のコードは期待通り実行されますか?また解決策がありましたらご教授願います。

Re: DXライブラリで変換キーの入力を取得できない

Posted: 2015年3月18日(水) 14:18
by amehirune
過去に似たような事例があったようです。こちらをご参考ください。
変換、無変換キーの状態が取得できない-nifty

尚、こちらの環境では、上記サイトに従ったところ、正常に実行されました。
オフトピック
開発環境:VC++ ExpressEdition 2008
DXライブラリ Ver3.12c

Re: DXライブラリで変換キーの入力を取得できない

Posted: 2015年3月18日(水) 14:28
by みけCAT
提示されたコードでSpace is pressed、Convert is pressedともにキーの状態に従って表示されました。

Windows 7 Home Premium Service Pack 1 (64ビット オペレーティング システム)
Intel(R) Core(TM) i7-4712MQ CPU @2.30GHz 2.30GHz
RAM 8.00GB
gcc 4.8.1
DXライブラリ Ver3.13d
Google 日本語入力 1.13.1641.0

Re: DXライブラリで変換キーの入力を取得できない

Posted: 2015年3月18日(水) 14:48
by 墨汁
amehirune さんが書きました:過去に似たような事例があったようです。こちらをご参考ください。
変換、無変換キーの状態が取得できない-nifty

尚、こちらの環境では、上記サイトに従ったところ、正常に実行されました。
オフトピック
開発環境:VC++ ExpressEdition 2008
DXライブラリ Ver3.12c

完全に自分の検索不足でした。教えていただいたトピックに書かれていたとおりDXライブラリを最新のものに更新したところ期待通りの動きをしてくれるようになりました。amehiruneさん教えていただいてありがとうございました。
みけキャットさんもわざわざプロジェクトまで作ってテストしていただいてありがとうございました。