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
Ir a la versión completa