Unicodeの文字 が エディターボックスから読めないのですか?
中国の漢字をタイプして、「??」が表示されます。
リッチエディターボックスを使ってみたら、表示するには表示できるけど、
取得できないんです、
CString str;
GetDlgItemText(ID_EDIT1,str);
GetDlgItem(ID_EDIT1)->GetWindowText(str);
これらの関数を使っても、正しく取得できない、
たとえば「體」この字を入力すると、取得した後、strは 「??」になる
一体どうすればいいのですか、教えてください〜
よろしくお願いします
MFC VC.net WinXP jp
> これらの関数を使っても、正しく取得できない、
> たとえば「體」この字を入力すると、取得した後、strは 「??」になる
このことをどうやって確認したのですか?
「どこかに表示させて」ならば、そのどこかに直接「體」と書いて正しく表示されることを確認しましたか?
僕はWindowsXPにつきの中国語の入力言語に切り替えて、
エディットボックスに入力して、正しく表示されないんです。
ネットで台湾のサイトからコピーしたテキストをエディットボックスに貼り付けても同じです (また「??」になる) 。
どうやって、ほかの国の文字を正しく表示されるのですか、
そして取得するのですか
> これらの関数を使っても、正しく取得できない、
> たとえば「體」この字を入力すると、取得した後、strは 「??」になる
この前に入力した「體」は中国の漢字だったんだけど、
ここに載せる時、コードが変更されたようだ。
ちゃんとUnicode系のAPIでプログラムを作成していますか?
ANSI系のAPIでプログラムを作成しているのであれば,
ユーザーのコードページに含まれない文字は正しく扱えませんよ。
MFCのアプリケーション ウィザード で プログラムを作成していますけど、Unicodeをサポートするには、ほかのすべきことがありますか?
GetWindowTextなどの関数は Unicodeでもサポートすると
MSDNに書いてあるんですが
ネットでくぐったら、解決方法見つかりました。
>■ Unicode対応のプロジェクトにする
>「プロジェクト」→「設定」→「C/C++」→「プリプロセッサの定義」から
>_MBCSの定義を削除し、代わりに、_UNICODEを定義する。
>「プロジェクト」→「設定」→「リンク」→「アウトプット」の
>「エントリポイントシンボル」にwWinMainCRTStartupと書き込む。
>(これをやらないと_WinMain@16は未解決ですとコンパイルエラーになります)
これで、解決しました。
ツイート | ![]() |