均等割り付け


よし  2005-08-29 21:54:16  No: 124604  IP: [192.*.*.*]

【環境】
VB6.0
WindowsXP(SP2)

テキストボックスに文字を表示、その文字をExcelのように
均等割り付けで表示したいのですが、
よい方法を教えてください。

編集 削除
さくら  2005-08-29 22:16:40  No: 124605  IP: [192.*.*.*]

Private Sub Form_Load()
  Printer.ScaleMode = vbMillimeters
  Text1.Text = "aaaa"
  MsgBox Printer.TextWidth(Trim$(Text1.Text))
End Sub
上記を動かしてもらえばテキスト文字の長さがわかります。
後は平気ですよね??

私なら上記のようにやるけど他のみなさんはどうしますか??

編集 削除
花ちゃん  2005-08-30 00:06:19  No: 124606  IP: [192.*.*.*]

>私なら上記のようにやるけど他のみなさんはどうしますか??

Win32 API 関数の SetTextCharacterExtra を使いますね。

編集 削除
さくら  2005-08-30 09:21:31  No: 124607  IP: [192.*.*.*]

文字間のエキストラペース量を取得するAPIなんですね。
勉強になります。

編集 削除
M  2006-07-25 18:08:44  No: 124608  IP: [192.*.*.*]

同じことがしたのですが
わかりません。

もうすこし教えていただけませんか?

編集 削除
大吉末吉  2006-07-25 19:45:49  No: 124609  IP: [192.*.*.*]

Mさん  こんにちは

> 同じこと

とは、「プリンタに均等割付で印刷する」ってことですか?
#さくら  さんと、花ちゃん  さんの回答はそういう趣旨ですね。
#よし  さんの質問は、「TextBoxで均等割付表示したい」という意味に取れますけど・・・そういう趣旨の回答はありませんし。

要するに、「均等割付するための、文字間隔を自前で計算しましょう」ってことですよね?

「文字間隔」 = (「領域全体の幅」 - 「文字の幅の合計」) / (「文字数」 -1)

とか・・・

編集 削除