none
RASTER_FONTYPEのフォントでグリフを使用してTextOutしたEMFを RRS feed

  • 質問

  •  

    現在、ある文字が書き込まれたEMFファイルを画面に表示するという
    プログラムを作成しています。

    以下の条件の時、画面に表示されたEMFデータが文字化けしてしまいました。

    =============
    1) EMFファイルに書き込まれているテキストが以下の条件で書き込まれている。

      ・フォントに「terminal」(RASTER_FONTTYPE)を使用している。
      ・ExtTextOutでテキスト描画を行う際に、GetGlyphIndices()で
        文字列をグリフに変換したものを渡す。
      ・EMFファイルを作成する際に使用するデバイスコンテキストは
        プリンタのデバイスコンテキスト。

    2) DISPLAYデバイスコンテキストを使用して、1)のEMFファイルを
       PlayEnhMetaFile()で描画する。

    =============

    ※ EMFに書き込まれているテキストのフォントがMS ゴシックの場合には
       現象が発生しませんでした。

     

    RASTER_FONTTYPEのフォントを使用してグリフを書き込むと、何故文字化けが
    発生するのかがわかりません。
    書き込むときにはプリンタデバイスコンテキストで、表示するときがDISPLAYデバイス

    コンテキストを使用しているからなのでしょうか?

    そもそもRASTER_FONTYPEのフォントは、普通に表示できないのでしょうか?

     

    しかし、XPでEMFをダブルクリックして表示されるビューワでは正しく表示
    されます。
    なにか、特別なことをしているのでしょうか。

     

    上記から、何か思いつくことがありましたらどなたか教えてください。

     

    <環境>
    ・Visual C++6.0
    ・Windows XP SP2

    2008年7月2日 9:30

回答

  • pure777さん、こんにちは! 中川 俊輔です。

     

    EMFファイルは同じマシンで作成されたものなのでしょうか?

    違うマシンで作られたものだとフォントの違いなどが原因でうまく表示できないのかもしれません。

     

    また、XP標準のビューワでは正常に表示されるということなので、

    PlayEnhMetaFileではなくGDI+を使っての描画を試してみてはどうでしょうか?

    Metafiles

    http://msdn.microsoft.com/en-us/library/ms536391.aspx

     

    それでは!

     

    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。

    コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年7月11日 9:17

すべての返信

  • pure777さん、こんにちは! 中川 俊輔です。

     

    EMFファイルは同じマシンで作成されたものなのでしょうか?

    違うマシンで作られたものだとフォントの違いなどが原因でうまく表示できないのかもしれません。

     

    また、XP標準のビューワでは正常に表示されるということなので、

    PlayEnhMetaFileではなくGDI+を使っての描画を試してみてはどうでしょうか?

    Metafiles

    http://msdn.microsoft.com/en-us/library/ms536391.aspx

     

    それでは!

     

    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。

    コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年7月11日 9:17
  • こんにちは、フォーラムオペレータ 大久保です。

     

    pure777 さん、その後いかがでしょうか?弊社中川のアドバイスは参考になりましたでしょうか?

    大変勝手ながら、弊社 中川 の投稿に「回答済み」チェックをつけさせていただきましたが、問題が解決していないようでしたら再度ご投稿くださいませ。

     

    それでは

    2008年8月6日 7:12