Programación General > Visual Basic 6.0 e inferiores

 Imprimir Textbox

(1/1)

mamex:
Disculpen, me gustaría que me ayudaran a imprimir el text de un textBox, ya pude imprimirlo con el objeto Printer, pero no como lo deseo.

Planteo mi problema: tengo un textBox con la propiedad multiline, y quiero que aparezca en la impresión igual. O sea, renglón por renglón. Espero me ayuden. Gracias.

mamex:
Bueno, muchas gracias, pero ya lo encontré, jeje, pensé que no me entenderían, aqui les dejo el código para que lo vean.


--- Código: Text --- ' Función del API de Windows de 32 bits de múltiple usoPublic Declare Function SendMessage Lib "user32" Alias "SendMessageA" _    (ByVal hWnd As Long, ByVal wMsg As Long, _    ByVal wParam As Long, ByVal lParam As Long) As Long  Public Sub ImprimirPorLinea(qControl As TextBox, margenIzquierdo As Integer, margenSuperior As Integer)    ' Este procedimiento tomará cada línea de un textbox multiline  (23/Ene/00)    ' y lo imprimirá en la impresora predeterminada    '    ' El parámetro qControl, será el TextBox a usar, en este caso no es necesario    ' ya que sólo tenemos un TextBox, pero si se usaran varios...    ' sería un procedimiento de uso genérico...    '    Dim i As Long, k As Long    Dim L1 As Long, L2 As Long    ' Constantes para usar con SendMessage    Const EM_GETLINECOUNT = &HBA    Const EM_LINEFROMCHAR = &HC9    Const EM_LINELENGTH = &HC1    Const EM_LINEINDEX = &HBB   '--- Faltaba esta declaración       (21/Abr/00)     ' Número de líneas del TextBox    k = SendMessage(qControl.hWnd, EM_GETLINECOUNT, 0, 0&)    Printer.ScaleLeft = margenIzquierdo * -1    Printer.ScaleTop = margenSuperior * -1        Printer.Print ""    For i = 0 To k - 1        ' Primer carácter de la línea actual        L1 = SendMessage(qControl.hWnd, EM_LINEINDEX, i, 0&) + 1        ' Longitud de la línea actual        L2 = SendMessage(qControl.hWnd, EM_LINELENGTH, L1, 0&)        ' Imprimimos el trozo de texto que representa a una línea        Printer.Print Mid$(qControl.Text, L1, L2)    Next    ' Le indicamos que ya no hay más que imprimir    Printer.EndDocEnd Sub  

Navegación

[0] Índice de Mensajes

Ir a la versión completa