PS_USERSTYLEを使用して点線を描画したデータを EMF 形式で保存した場合、Win32 API の PlayEnhMetaFile 関数と.NET Framework の Graphics.DrawImage メソッドの表示に差異が出る

Windows XP のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Windows XP のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

現象
ExtCreatePen 関数でペン スタイルとしてPS_USERSTYLEを使用して点線を描画したデータを EMF 形式で保存した場合、Win32 API の PlayEnhMetaFile 関数と.NET Framework の Graphics.DrawImage メソッドの表示に差異が出る場合があります。
原因
GDIで作成された EMF 形式のデータを GDI+ を使用する .NET Framework の Graphics.DrawImage メソッドで表示する場合、内部でデータの翻訳処理が行われます。
ExtCreatePen 関数でペン スタイルとしてPS_USERSTYLEを使用して点線を描画した場合、ユーザーが独自に用意したスタイル配列が参照されます。このスタイル配列を高解像度のメタファイルで取り扱う場合、 GDI+ が EMF 形式のデータを翻訳する過程で PS_USERSTYLE に関する数値の丸め誤差が発生することによって表示に差異が発生することがあります。
状況
この動作は仕様です。
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2771603 - 最終更新日: 11/01/2012 00:19:00 - リビジョン: 3.0

Microsoft Windows XP Home Edition, Microsoft Windows XP Professional, Microsoft Windows XP Service Pack 3, Windows Vista Business, Windows Vista Enterprise, Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Ultimate, Windows Vista Service Pack 2, Windows 7 Enterprise, Windows 7 Home Basic, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Ultimate, Windows 7 Service Pack 1, Windows 8 Enterprise, Windows 8 Pro, Microsoft .NET Framework 2.0, Microsoft .NET Framework 2.0 Service Pack 2, Microsoft .NET Framework 3.0, Microsoft .NET Framework 3.0 Service Pack 2, Microsoft .NET Framework 3.5, Microsoft .NET Framework 3.5 Service Pack 1, Microsoft .NET Framework 4.0, Microsoft .NET Framework 4.5

  • kbtshoot kbexpertiseadvanced kbgdi kbgraphic KB2771603
フィードバック