03 Juli 2007

Mencetak Multiline TextBox dengan perataan

'Deklarasi API
'Tuliskan deklarasi berikut di baris paling atas program anda

Public Declare Function SetTextAlign Lib "gdi32.dll" (ByVal hdc As Long, ByVal wFlags As Long) As Long
Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wmsg As Long, ByVal wparam As Long, lparam As Any) As Long
Public Const TA_CENTER = 6


'Penggunaan
'Buatlah sebuah form dengan sebuah command button
'dan sebuah textbox yang di set "multiline"

Option Explicit

Private Sub Command1_Click()
Dim i As Integer
Dim ta As Long
Dim TextLines As Long
Dim TextBuff As String
Dim CharRet As Long

'Tambahkan ini di dalam kode print anda!
'Rata tengah di printer
ta = SetTextAlign(Printer.hdc, TA_CENTER)
Printer.CurrentY = (Printer.ScaleHeight / .Parent.ScaleHeight) * .Top
'Dapatkan jumlah baris di dalam textbox
TextLines = SendMessage(.hwnd, &HBA, 0, 0)
' Pisahkan dan print setiap baris yang ada dalam textbox
For i = 0 To TextLines - 1
TextBuff = Space(1000)
Printer.CurrentX = (Printer.ScaleWidth / .Parent.ScaleWidth) * (.Left + (.Width / 2))
'Buat buffer
Mid(TextBuff, 1, 1) = Chr(79 And &HFF)
Mid(TextBuff, 2, 1) = Chr(79 \ &H100)
CharRet = SendMessage(.hwnd, &HC4, i, ByVal TextBuff)
Printer.Print Left(TextBuff, CharRet)
Next i
'Kembalikan perataan ke setting semula
ta = SetTextAlign(Printer.hdc, ta)
End Sub


Keywords:
Pemrograman VB.6.0, Visual Basic 6.0 Tips and tricks, mencetak multiline textbox, perataan textbox

Tidak ada komentar: