MBCS プログラミングにおける一般的なアドバイス
次のヒントを参考にしてください。
柔軟性を高めるには、可能であれば、
_tcschr
や_tcscpy
などの実行時マクロを使用します。 詳細については、「tchar.h における汎用テキストのマッピング」を参照してください。現在のコード ページに関する情報を取得するには、C 実行時
_getmbcp
関数を使用します。文字列リソースは再利用しないでください。 対象の言語によっては、特定の文字列が翻訳時に異なる意味を持つ場合があります。 たとえば、アプリケーションのメイン メニューの "File" は、ダイアログ ボックス内の文字列 "File" とは異なる翻訳になる場合があります。 複数の文字列で同じ名前を使用する必要がある場合は、それぞれに異なる文字列 ID を使用します。
アプリケーションが、MBCS が有効なオペレーティング システムで実行されているかどうかを確認することもできます。 これを行うには、プログラムの起動時にフラグを設定します。API 呼び出しに依存しないでください。
ダイアログ ボックスをデザインするときに、MBCS 翻訳用に、静的テキスト コントロールの最後に約 30% の余分なスペースを許可します。
一部のフォントはすべてのシステムで使用できるわけではないため、アプリケーションのフォントを選択するときは注意してください。
ダイアログ ボックスのフォントを選択する場合は、MS Sans Serif または Helvetica の代わりに、MS Shell Dlg を使用します。 MS Shell Dlg は、ダイアログ ボックスを作成する前に、システムによって正しいフォントに置き換えられます。 MS Shell Dlg を使用すると、このフォントを処理するためにオペレーティング システムに加えられた変更がすべて自動的に使用できるようになります。 (MFC では、MS Shell Dlg が DEFAULT_GUI_FONT または Windows 95、Windows 98、Windows NT 4 のシステム フォントで置き換えられます。これは、これらのシステムでは、MS Shell Dlg が正しく処理されないためです)。
アプリケーションを設計するときに、ローカライズできる文字列を決定します。 不明な場合は、特定の文字列がローカライズされることを前提とします。 このように、ローカライズできる文字列とローカライズできない文字列を混在させないでください。