印刷位置指定を文字列の中心にするには?

解決


シー  2007-10-22 23:25:33  No: 99608

WindowsXP VB6sp6で開発しております。
過去ログの以下のコードを参考にさせていただき、印刷機能を作成しました。
    Printer.ScaleMode = 6
    Printer.Font.Size = 10
    Printer.CurrentX = 50
    Printer.CurrentY = 50
    Printer.Print TextBox.Text
    Printer.EndDoc
しかし、この場合の位置指定はtextboxの文字列の一番左の位置を指定していると思います。
2桁、3桁と増えていくにつれて、右へ行ってしまうのですが、印刷位置を文字列の中心で指定できないでしょうか?

よろしくお願いします。


大吉末吉  2007-10-23 00:07:24  No: 99609

「TextWidth メソッド」で、文字列の幅を求めて、
その半分をずらして指定してください。

以下は、VB6のヘルプ(MSDNライブラリ)の

「Print メソッドの出力位置の設定」より抜粋。
------------------------------------------------------
TextWidth メソッドは、そのオブジェクトのフォント サイズとフォント
 スタイルに基づいて、指定のテキストの幅 (文字列の長さ) を返します。
(中略)
または Printer オブジェクトの幅よりも大きいかどうかを判断するときに
 TextWidth メソッドを利用すると便利です。

次のステートメントは、あるボックスの中央にテキストを表示するために、
TextWidth メソッドと TextHeight メソッドを使って CurrentX プロパティと CurrentY プロパティを設定しています。

CurrentX = (BoxWidth - TextWidth("MealCard")) / 2
CurrentY = (Boxheight - TextHeight("MealCard")) / 2
------------------------------------------------------


シー  2007-10-23 00:35:15  No: 99610

>大吉末吉さん。
これを使えばうまく中心に印刷できそうです。
ありがとうございました。


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

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






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