C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: C#でのフォント列挙について


(過去ログ 73 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■42887 / inTopicNo.1)  C#でのフォント列挙について
  
□投稿者/ あず (1回)-(2009/10/22(Thu) 21:55:03)

分類:[C#] 

C#でのInstalledFontCollectionを利用したフォントの列挙についてお聞きします。

一応、フォントの列挙の挙動は行えている用なのですが
一部列挙のされないフォントがあるようです。

ちなみに、下記のように列挙を行っています。

System.Drawing.Text.InstalledFontCollection ifc =
new System.Drawing.Text.InstalledFontCollection();

System.Drawing.FontFamily[] ffs = ifc.Families;

foreach (System.Drawing.FontFamily ff in ffs)
{
//ff.Name
}

正しいフォントの列挙の仕方をご存じの方、ご伝授頂けないでしょうか。
宜しくお願いいたします。

引用返信 編集キー/
■42890 / inTopicNo.2)  Re[1]: C#でのフォント列挙について
□投稿者/ Hongliang (492回)-(2009/10/22(Thu) 22:57:15)
System.Drawing(GDI+)で扱えないフォントファミリは InstalledFontCollection で列挙できません。これで列挙できないフォントファミリはそのフォントファミリから Font オブジェクトを作成できない(San Serif で代替される)ということです。
// 使えるけど列挙できない、使えないけど列挙できたというのが絶対無いとは私には保証できませんが。

そんなの関係なくとにかく全て列挙したいなら、Win32API の EnumFontFamiliesEx 関数を使うことになると思います。
引用返信 編集キー/
■42944 / inTopicNo.3)  Re[2]: C#でのフォント列挙について
□投稿者/ あず (2回)-(2009/10/24(Sat) 01:41:41)
>Hongliangさん
ご回答有難う御座いました。
やはりWin32APIを使用しないと全フォントを列挙できないのですね。

Win32APIのEnumFontFamiliesExは、調べてはいましたがコールバック関数型の定義の仕方が
分からなかったためにスルーしてました。
普通にdelegateでできるようなので試してみます。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -