• ベストアンサー

文字間の幅の設定

ピクチャーボックスのprintメソッドで表示する文字列ですが、 文字間の幅の設定は可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

No.3の補足です。 SetTextCharacterExtraの宣言は Private Declare Function SetTextCharacterExtra Lib "gdi32" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long にして下さい。 APIビューアで持ってきたらエラーになってしまいました。 私のプログラムだけ? 後、PTの単位はピクセルのようです。すみません。

sha-girl
質問者

お礼

回答してくださった皆様ありがとうございました。解決いたしました。 >APIビューアで持ってきたらエラーになってしまいました。 私もです。 SetTextCharacterExtraAがGDIにみつからないとかいうエラーだったかと思います。

その他の回答 (3)

回答No.3

API関数のSetTextCharacterExtraでできると思います Public Declare Function SetTextCharacterExtra Lib "gdi32" Alias "SetTextCharacterExtraA" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long SetTextCharacterExtra hhdc, PT    hhdc:ピクチャーボックスのhDC    PT:ピッチ数(多分twip) TextOut(Api)でもprint文でもできます

sha-girl
質問者

お礼

おお!そんなAPIがあったのですね。 早速使ってみたく存じます。 御回答有難うございます。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

文字間の幅の設定はないと思います。 でも自力でやれば簡単です。 Private Sub Picture1_Click() Dim i As Long Dim s As String s = "文字列を100twip間隔に表示します" For i = 1 To Len(s) Picture1.Print Mid(s, i, 1); Picture1.CurrentX = Picture1.CurrentX + 100 Next End Sub

sha-girl
質問者

お礼

やはり関数でも作って一文字ずつ表示させるしかないのでしょうか。 ご回答ありがとうございました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 Win32APIのCreateFont関数を使用すれば出来ると思います。 http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/vcmfc/_mfc_cfont.3a3a.createfont.htm http://www.bcap.co.jp/hanafusa/ [画面・文字等の表示]→[各種フォントを任意の角度で表示する] など。

sha-girl
質問者

お礼

ご回答ありがとうございます。 CreateFontで平均文字幅は指定できるようですが、 文字間の幅を変えることは可能なのでしょうか?

関連するQ&A