vb2005でprintdocumentで印字プログラムを作成しています。
「Ⅳ 以 上」という文字を縦書き印刷したいのですが
Dim V_FontH2 As New Font("MS ゴシック", 8, FontStyle.Regular)
Dim V_SF As New StringFormat()
EG.DrawString("Ⅳ 以 上", V_FontH2, Brushes.Black, 100, 100 , V_SF)
としたのですが「Ⅳ」の文字だけ右に90度の状態で印字されてしまいます。
フォントを@MS ゴシックにかえてもかわりませんでした。
誰か助けてください。
>フォントを@MS ゴシックにかえてもかわりませんでした。
>誰か助けてください。
縦書きフォント自体がサポートされていないようなので、Win32 API 関数の
CreateFont を使って縦書きフォントを270度回転させて表示すれば一応
表示させる事は可能です。
又は、1文字づつ位置を設定して表示するかですね。
リッチテキストボックスでは縦書きフォントを表示させる事はできるようですが
プロパティの設定で出てくるフォントのダイアログでは、縦書きフォント
が表示されませんね。
>縦書きフォント自体がサポートされていないようなので、Win32 API 関数の
>CreateFont を使って縦書きフォントを270度回転させて表示すれば一応
>表示させる事は可能です。
使い方がまったくわかりません。
サンプルコードをいただけたら助かります。
Dim V_FontH2 As New Font("MS ゴシック", 8, FontStyle.Regular)
Dim V_SF As New StringFormat()
V_SF.FormatFlags = StringFormatFlags.DirectionVertical
Dim EG As Graphics = e.Graphics
Dim FontHandle As Long
FontHandle = CreateFont(0, 0, 2700, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, "@MS ゴシック")
EG.DrawString("Ⅳ 以 上", どうすればよかとね, Brushes.Black, 100, 100 , V_SF)
としたのですが
1:PInvokeStackImbalance が検出されました。とメッセージがでます。
2:CreateFontで作成したフォントをどうやってDrawStringのフォントに
変換する方法がわかりません。