DOBON.NET DOBON.NETプログラミング掲示板過去ログ

回転文字描画

  • 題名: 回転文字描画
  • 著者: DEG
  • 日時: 2003/07/03 19:44:25
  • ID: 117
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
分類:[全般]

Public Const LF_FACESIZE As Int32 = 32
Public Structure LOGFONT
Public lfHeight As Int32
Public lfWidth As Int32
Public lfEscapement As Int32
Public lfOrientation As Int32
Public lfWeight As Int32
Public lfItalic As Byte
Public lfUnderline As Byte
Public lfStrikeOut As Byte
Public lfCharSet As Byte
Public lfOutPrecision As Byte
Public lfClipPrecision As Byte
Public lfQuality As Byte
Public lfPitchAndFamily As Byte
<VBFixedString(LF_FACESIZE)> Public lfFaceName As String
End Structure

Dim mLf AS LOGFONT
DIM mFont AS Font
mLf.lfEscapement = 450
mLf.その他セット
mFont = Font.FromLogFont(mLf)

DrawString(Str , mFont, Brushes.Black, Point)

で、回転文字の描画ができるかと思いましたが、水平になってしまいます
文字高は、LOGFONTの値が反映されています
DrawStringではダメなのでしょうか?
あくまで推測ですが、FromLogFontでLOGFONTをFontオブジェクトに変換する際、Fontオブジェクトに変換できない情報が無視されるのではないでしょうか?
■No118に返信(管理人さんの記事)
> あくまで推測ですが、FromLogFontでLOGFONTをFontオブジェクトに変換する際、Fontオブジェクトに変換できない情報が無視されるのではないでしょうか?

ありがとうございます、Fontクラスのプロパティに回転角はないから無視され
Fontオブジェクトを引数にとるDrawStringでは無理ということですね。
私もそんな気がしてきました

で、APIのTextOutで描こうかと思ったのですが、先のLOGFONTを使って

Private Declare Function CreateFontIndirect Lib "gdi32" _
Alias "CreateFontIndirectA" (ByVal lpLogFont As LOGFONT) As Int32
Dim hFont As Int32
hFont = CreateFontIndirect(mLf)

としたところ、
オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーになってしまいました
これは、どういう意味なんでしょう
> としたところ、
> オブジェクト参照がオブジェクト インスタンスに設定されていません。
> というエラーになってしまいました
> これは、どういう意味なんでしょう

意味はそのままだと思いますが、その原因はこれだけでは分かりません。
  • 題名: Re[4]: 回転文字描画
  • 著者: DEG
  • 日時: 2003/07/11 15:57:38
  • ID: 155
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No126に返信(管理人さんの記事)
> 意味はそのままだと思いますが、その原因はこれだけでは分かりません。

返事が遅れてすみません
構造体を渡しているのに、なぜインスタンスという言葉がでてくるか
わからなかったのですが
もう一度、構造体のヘルプを読んでいて、値渡しになっているからだと
気づきました

Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (ByRef lpLogFont As LOGFONT) As Int32

に修正することで、動くようになりました
ありがとうございました
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板