ページ 11

入力中の文字の描写について

Posted: 2013年9月07日(土) 10:08
by げん
以前質問した後このようなコードを作っていれたのですが一つ致命的な問題が発生したので質問投稿した次第です。
コード自体は問題なく動いているのですが、一つ使用する側に大きな欠点があることがわかりました。
全角の入力です。
全角の入力中に書き込み中の表示を出すことができないため、文字をどう変換しているのかがまったくわかりません。
ローマ字入力のみなら問題ないのですが全角にするとエンターがおされるまで入力した文字がまったく反応しません。

コード:

void InputString(int KEY,char *T,int X=300,int Y=300){
	static bool Input=false; 
	static int InputHandle ;
	if(KEY==1){
		if(Input==false){
			// キー入力ハンドルを作る(キャンセルなし全角文字有り数値入力じゃなし)
			InputHandle = MakeKeyInput( 90 , false , false , false ) ;

			// 作成したキー入力ハンドルをアクティブにする
			SetActiveKeyInput( InputHandle ) ;
			Input=true ;
		}
		else{
			if( CheckKeyInput( InputHandle ) != 0 ){
			 // 入力された文字列を取得
			 GetKeyInputString(T, InputHandle ) ;

			 // 用済みのインプットハンドルを削除する
			 DeleteKeyInput( InputHandle ) ;
			 Input=FALSE;
			}
		
		}
	
	}
	// 入力モードを描画
	DrawKeyInputModeString( 640 , 480 ) ; 
       //入力途中の文字列を描画
	DrawKeyInputString( X , Y , InputHandle ) ;
}

ご助力よろしくお願いします。

環境
Windows7
C++
DXライブラリをつかっています

Re: 入力中の文字の描写について

Posted: 2013年9月07日(土) 10:40
by h2so5
入力途中の文字はDrawKeyInputStringで表示されるはずです。
リファレンスのサンプルプログラムでも表示されませんか?その場合はIMEとの相性の問題かもしれません。

Re: 入力中の文字の描写について

Posted: 2013年9月07日(土) 16:54
by げん
本当に申し訳ない限りです。
返事がくるまで他の部分を弄ろうとおもって弄っていたら、設定を何もかえていないのにも関わらず表示されるようになりました。

原因も分からず仕舞いですが、一応解決いたしました。

有難うございます。