均等割り付け


よし  2005-08-30 06:54:16  No: 124604

【環境】
VB6.0
WindowsXP(SP2)

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


さくら  2005-08-30 07:16:40  No: 124605

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

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


花ちゃん  2005-08-30 09:06:19  No: 124606

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

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


さくら  2005-08-30 18:21:31  No: 124607

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


M  2006-07-26 03:08:44  No: 124608

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

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


大吉末吉  2006-07-26 04:45:49  No: 124609

Mさん  こんにちは

> 同じこと

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

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

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

とか・・・


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加