Windows 8 でアプリケーションを実行した場合に文字列の表示結果が変わる

現象
Windows 8 でアプリケーションを実行すると、Windows 7 など以前のバージョンと比較し、文字列の表示結果が変化する場合があります。

次のような状況で表示結果が変わる可能性があります。

・Multiline の TextBox、RichTextBox コントロールにおいて、文字列の描画位置が数ピクセル右にずれます。
  Win32 アプリケーションにおいて、Multiline の Edit コントロールを利用した場合にも同様の現象が発生します。

・TextBox コントロールにおいて TextRenderingHint.AntiAlias のアンチエイリアスの処理結果が異なります。


本現象は、Windows Server 2012 でも同様に確認することができます。



原因
Windows 8 では、MS ゴシック、MS 明朝などの日本語フォントに対して字形の追加が行われております。
これにより、フォントファイルのヘッダー情報の一部の値が変更され、文字列の描画結果に影響を与えています。

なお、同様の原因により GetTextMetrics API で取得される TEXTMETRIC.tmMaxCharWidth の値も変化しています。



解決方法
本現象は、Windows 8 の所定の動作となります。
文字列の描画位置や描画サイズの変化により、アプリケーションに影響がある場合には、対象となるコントロールのサイズを十分な大きさに変更してください。
コントロールのサイズを変更することが難しい場合には、フォントサイズの変更などを検討してください。 
 

注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2757148 - 最終更新日: 09/29/2016 14:39:00 - リビジョン: 4.0

Windows 8

  • KB2757148
フィードバック