- ベストアンサー
文字間の幅の設定
ピクチャーボックスのprintメソッドで表示する文字列ですが、 文字間の幅の設定は可能でしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.3の補足です。 SetTextCharacterExtraの宣言は Private Declare Function SetTextCharacterExtra Lib "gdi32" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long にして下さい。 APIビューアで持ってきたらエラーになってしまいました。 私のプログラムだけ? 後、PTの単位はピクセルのようです。すみません。
その他の回答 (3)
- taisuke555
- ベストアンサー率55% (132/236)
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文でもできます
お礼
おお!そんなAPIがあったのですね。 早速使ってみたく存じます。 御回答有難うございます。
- todo36
- ベストアンサー率58% (728/1234)
文字間の幅の設定はないと思います。 でも自力でやれば簡単です。 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
お礼
やはり関数でも作って一文字ずつ表示させるしかないのでしょうか。 ご回答ありがとうございました。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。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/ [画面・文字等の表示]→[各種フォントを任意の角度で表示する] など。
お礼
ご回答ありがとうございます。 CreateFontで平均文字幅は指定できるようですが、 文字間の幅を変えることは可能なのでしょうか?
お礼
回答してくださった皆様ありがとうございました。解決いたしました。 >APIビューアで持ってきたらエラーになってしまいました。 私もです。 SetTextCharacterExtraAがGDIにみつからないとかいうエラーだったかと思います。