• 締切済み

FontDialogでTrueType以外

Visual C# 2010 Express を使ってます。 FontDialogで適当なフォントを選択したところ、次の例外がでました。 「TrueType フォントのみがサポートされています。これは TrueType フォントではありません。」 RichTextBoxにFontを設定したいのですが、TrueType フォント以外のフォントは使えないのでしょうか。もし使えないのならFontDialogでTrueType フォント以外を非表示にする方法はあるのでしょうか。

みんなの回答

回答No.3

>今、試してる所ですがフォントが変わりません ほんとですね。私も試してみましたが、TextBox だと FixedSys になりましたが、RichTextBox だと「MS Pゴシック」になってしまいました。( RichTextBox のフォントは、RichTextBox の内容をコピーしてワードパットに貼り付けて確認 ) 私にはお手上げですね・・・。

回答No.2

失礼しました。問題なのはラスタフォントなんですね。 ちょっと調べてみましたが、今まで全然気づかずにいたんですけど、.NET ってラスタフォントをサポートしてないみたいです。 http://msdn.microsoft.com/ja-jp/library/cc437520(v=vs.71).aspx API を使うとなんとかなるみたいです。↓ http://dobon.net/vb/bbs/log3-11/6149.html

wsp
質問者

補足

今、試してる所ですがフォントが変わりません、でもサイズ、太字、斜体、ストライクアウト、下線は設定できます。たぶんLOGFONTのlfFaceNameへのフォント名の設定の仕方に問題があると思うんですが、どうしたら出来るのかまだ分かりません。なのでTrueType以外のフォントが使えるかどうか確認できません。

回答No.1

FontDialog については、FontDialog の AllowVectorFonts プロパティを False にすればいいんじゃないでしょうか。

wsp
質問者

補足

その方法では、同じ例外が出るフォントは表示されます。 それより、TrueTypeフォント以外のフォントが本当に使えないかどうかの方を重視しています。 メモ帳ですらTrueType以外のが使えるのに、プログラムからそれらが使えないというのは妙だと思うんです。