コード自体は問題なく動いているのですが、一つ使用する側に大きな欠点があることがわかりました。
全角の入力です。
全角の入力中に書き込み中の表示を出すことができないため、文字をどう変換しているのかがまったくわかりません。
ローマ字入力のみなら問題ないのですが全角にするとエンターがおされるまで入力した文字がまったく反応しません。
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ライブラリをつかっています