Visual Studioで "Use Unicode Character Set"を使用してMFC C++アプリケーションを構築しています。私はUNICODEを定義しています、私のCStringsは16ビットです、私は日本語の文字を含むファイル名などを処理します。しかし、私はCComboBox(AddStringを使って)に日本語文字を含むUnicode文字列を置くと、 。Windowsはどのように非Unicodeアプリケーションを識別しますか?
私はWindows XP Professional x64(英語)を使用しています。 Windowsのコントロールパネルの[地域と言語のオプション]、[詳細設定]タブを使用し、非Unicodeプログラムの言語を日本語に設定すると、コンボボックスが正しく表示されます。
私はコンボボックスを正しく見たいので、「Unicode以外のプログラムの言語」設定がUnicodeプログラムの動作を変更する理由を理解したいと思います。私のアプリケーションがUnicodeアプリケーションであることをWindowsに伝えるために何かすべきことはありますか?
ありがとうございました!
ありがとうございます。私は "Unicode以外のプログラムのための言語"を英語に戻しましたが、私のCComboBoxはまだまだ正しかったです! 私は、スイッチが、英語に戻ったときに残っていたより大きなシステムフォントをインストールしたと思っています。おそらく、それはあなたが「デフォルトUIフォント」の意味ですか?私はここで、またはMSDNで "デフォルトのUIフォント"への参照を見つけることができません。 –
MFCで使用される「MS Shell Dlg」フォントは、実際にはオペレーティングシステムのデフォルトのUIフォントへのマッピングです。詳細はこちらの記事を参照してください。http://support.microsoft.com/?scid=kb;en-us;282187&x=11&y=13 – djeidot