Tengo una nueva duda... Para escribir en un richtextbox de un formulario de un proyecto externo al mio...
Yo lo que hago es obtengo lo que ya esta escrito, lo guardo en un string, y despues con sendmessage (SETTEXT) mando el string + linea nueva + texto mio...
Las funciones para obtener el texto son:
Código:
Public Function Obtener_Texto(Hwnd_Ventana As Long) As String
Dim i As Long
Dim n As Long
Dim temp As String
n = SendMessageAsLong(Hwnd_Ventana, EM_GETLINECOUNT, 0, 0)
For i = n - 10 To n
temp = temp & Leer_Linea(Hwnd_Ventana, i - 1)
Next
Obtener_Texto = temp
End Function
y
Código:
Public Function Leer_Linea(Hwnd_Ventana As Long, Numero_Linea As Long) As String
Const MAX_CHAR_PER_LINE As Long = 80
Dim Lo As Integer
Dim Hi As Integer
Dim ret As Long
Dim Buffer As String
Lo = MAX_CHAR_PER_LINE And (255)
Hi = Int(MAX_CHAR_PER_LINE / 256)
Buffer = Chr$(Lo) + Chr$(Hi) + Space$(MAX_CHAR_PER_LINE - 2)
ret = SendMessageAsString(Hwnd_Ventana, EM_GETLINE, Numero_Linea, Buffer)
Leer_Linea = Left$(Buffer, ret)
End Function
Si no me equivoco estan en recursosvisualbasic no recuerdo bien...
Bueno despues de obtener el texto, mando el nuevo con sendmessage y bajo hasta el final:
Código:
Call SendMessage(HANDLE, WM_SETTEXT, 0, ByVal TextoAnterior & vbCrLf & TextoX & vbCrLf)
Call SendMessage(HANDLE, WM_VSCROLL, SB_BOTTOM, 0)
Ahora mi pregunta es, se puede Escribir directamente sin obtener el texto anterior? osea hacer un vbCrLf sobre lo que ya este escrito y mandar otro texto?
Porque cuando obtengo el texto, y mando todo con sendmessage, se pierde el formato (el color es lo que mas me importa)
Gracias!!!