HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0826
とあるプログラマA2Dで外部フォントを使用するには?2解決


とあるプログラマ

リンク

2020/8/26(Wed) 17:31:56|NO.91261

AddFontResource関数で読み込んだOTFフォントをA2Dで描画で使用したいのですが、普通にalFontでフォント名を指定しただけでは何の文字も表示されませんでした。(mesによる描画は可能です)


調べてみたところ、GDI+で非インストールのフォントを読み込んで使うにはPrivateFontCollectionクラスを使用してフォントを読み込む必要があるそうですが、このクラスのフラットAPIが探しても見つかりません。


HSP3でGDI+(A2D)を使用して非インストールのフォントを描画することはできないのでしょうか。


以下参照

AddFontResource(Ex)の過去ログ
http://hsp.tv/play/pforum.php?mode=pastwch&num=12372

C++ - Fonts added with AddFontResourceEx are not working in GDI+
https://stackoverflow.com/questions/42595856/fonts-added-with-addfontresourceex-are-not-working-in-gdi



この記事に返信する


X

リンク

2020/8/26(Wed) 18:33:51|NO.91264

GDI+で使用できるフォントはTrueTypeフォントだけだった気がします。

参考になるかわかりませんがMSのドキュメント
https://docs.microsoft.com/en-us/windows/win32/api/gdiplusheaders/nl-gdiplusheaders-privatefontcollection
https://docs.microsoft.com/en-us/windows/win32/gdiplus/-gdiplus-font-flat

PrivateFontCollectionはあまり使い物にならないそうですが…
http://bbs.wankuma.com/index.cgi?mode=al2&namber=38795&KLOG=67



とあるプログラマ

リンク

2020/8/28(Fri) 17:05:44|NO.91280

MS DOCSはどちらも閲覧済みでしたが、やはりPrivateFontCollection周りのAPIはなさそうですね…

3つ目の掲示板の内容は2009年のものなので今のGDI+でも使い物にならないかは分かりませんが、GDI+によるテキストの描画は、Microsoft公式ができるだけGDIを使うように言っているほど使い物にならないとも聞いたことがあるので、mesかGDIの関数を使って描画したほうがいいのかもしれませんね…
(ただしfont命令を実行すると不定期に4096バイトのメモリ使用量が増える謎(メモリリーク?)があるので、あまり何回もfont命令は使いたくないのですが)

それらも含めこちらで検討してみたいと思います。
ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.