Insertar imagen en un RichTextBox
C�mo insertar im�genes de una forma sencilla

Fecha: 04/Abr/2004 (28/03/04)
Autor: Gustavo Alegre [email protected]

 

.

A veces es necesario aprovechar todos los recursos que nos brinda el control RichTextBox. Si estamos creando un procesador de textos con este control, nos ser�a interesante hacer que nuestros programas tengan muchas posibilidades (formato, color, vi�etas, etc) pero entre una de ellas est� la de poder insertar im�genes dentro del documento. Para ello vamos a usar el Portapapeles y una llamada a la API SendMessage para lograr poner la imagen dentro del RichTextBox. El proyecto tambi�n tiene el control CommonDialog para abrir la imagen.

A continuaci�n sigue c�digo en Visual Basic:


Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Private Const WM_PASTE = &H302

Private Sub cmdInsertarImagen_Click()
On Error GoTo ErrorImagen
Dim strRutaImagen As String
Dim imgLaImagen As Picture
Dim strContenidoPortapapeles As String
With cdlImagen
    .DialogTitle = "Insertar imagen"
    .CancelError = True
    .Filter = "Todos los archivos de im�genes|*.gif;*.jpg;*.jpe;*.bmp;*.png|Im�genes GIF (*.gif)|*.gif|Im�genes JPG (*.jpg, *.jpe)|*.jpg;*.jpe|Im�genes de mapas de bits (*.bmp)|*.bmp|Im�genes PNG (*.png)|*.png|Todos los archivos (*.*)|*.*"
    .FilterIndex = 1
    .Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly
    .ShowOpen
    strRutaImagen = .FileName
End With
Set imgLaImagen = LoadPicture(strRutaImagen)
strContenidoPortapapeles = Clipboard.GetText
Clipboard.Clear
Clipboard.SetData imgLaImagen
SendMessage rtfTexto.hWnd, WM_PASTE, 0, 0
Clipboard.Clear
Clipboard.SetText strContenidoPortapapeles
Exit Sub
ErrorImagen:
If Err.Number <> 32755 Then
    MsgBox "Error " & Err.Number & " " & Err.Description
    Exit Sub
End If
End Sub

La imagen queda insertada en el RichTextBox como si de un objeto se tratase. Se puede cambiar de tama�o, mover, y el texto va acompa�ado de la imagen.

Espero que les guste a todos!!!



ir al índice

Fichero con el c�digo de ejemplo (galegre_ImagenRTF.zip - 2.36 KB)