tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: フォント(@)について
投稿日: 2016/01/25(Mon) 11:43
投稿者Hongliang
WinFormにおいては、プリンタへのものも含め描画にGDI+というライブラリを使っています。(System.Drawing名前空間以下のものが、内部で扱っています)
このGDI+においては、縦書きフォントは直接的には使用されなくなりました。
FontFamily.Familiesなどで@つきの物が取得されないのはそのためです。
FontDialogはWindows標準のコモンダイアログを使っており、この部分はGDI+とは無関係のため、@つきフォントが含まれてしまっています。
これを選択したとしても、実際に取得されるFontオブジェクトは@なしの物と同じとして扱われます。
// 唯一、GdiVerticalFontプロパティに違いが出ますが、Graphicsオブジェクト等の描画メソッドからは無視されます。

GDI+では、Fontを縦書き用に指定するのではなく、
GraphicsのDrawStringに渡すStringFormatオブジェクトのFormatFlagsにDirectionVerticalを設定しておくことで、
・指定されたフォントから縦書き用グリフの取得
・描画方向の調整
が自動的に行われるようになっています。
(逆に言うとこれ以外できることがないのでこちらで調整ということが難しいわけですが)

// Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6.Printerを使って印刷するケースについては
// 存じません。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。