Inserer automatiquement des images dans une richtextbox au point d'insertion désiré


Description

Bonjour

Ce petit module est une extension des possibilités d'insertion d'images dans une RichTextBox, proposé il y a quelque temps par DeAtHCrAsH (VbFrance source 3929 INSERER UNE IMAGE DANS UNE RICHTEXTBOX)

La différence entre les 2 progs réside dans le fait que cette fois-ci il n'est pas nécessaire de cliquer à un endroit de la RichTextBox pour insérer une image. Il suffit d'avoir un chargeur d'images (ImageList1) et d'indiquer au programme le lieu où insérer telle ou telle image.

Source / Exemple :


Option Explicit

'Declaration de l'API et de la constante necessaire
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_PASTE = &H302

Private Sub Form_Load()
    Dim Where As Integer
    
    RichTextBox1.Text = "  Choisissez la où vous souhaitez inserer l'image " & " contenu dans la PictureBox en plaçant le curseur de votre souris à l'endroit souhaité..." & " J'espere que ce bout de code en aidera certain ;)" & vbCrLf & vbCrLf & "                        Samir Alias DeAtH_-_CrAsH "
    
    Where = InStr(RichTextBox1.Text, "  Choisissez")
    RichTextBox1.SelStart = Where - 1
    Call Transfert(1)
    
    Where = InStr(RichTextBox1.Text, " contenu")    'Recherche la position du texte à rechercher
    RichTextBox1.SelStart = Where - 1               'Positionne le point d'insertion juste avant le texte recherché
    Call Transfert(2)                               'Appelle l'image à insérer (la seconde dans ImageList1)
    
    Where = InStr(RichTextBox1.Text, " J'")
    RichTextBox1.SelStart = Where - 1
    Call Transfert(3)

End Sub

Private Sub Transfert(ByVal Index As Integer)

    'Efface le contenu du Presse-papiers
    Clipboard.Clear
    ' Copie l'image dans le presse-papier
    Clipboard.SetData ImageList1.ListImages(Index).Picture
    ' Insère l'image au point d'insertion
    SendMessage RichTextBox1.hwnd, WM_PASTE, 0, 0

End Sub

Conclusion :


Comme vous pouvez le constater, c'est très simple à utiliser.

Cela a été pour moi le premier pas de la réalisation d'un "ToolTipText" personnalisé (canada dry) devant me permettre d'inclure une aide spécifique, à un contrôle, et faisant appel à des images. Ce que ne fait pas à ma connaissance un vrai ToolTipText.

Rappel : il vous faut charger le composant "Microsoft Rich TextBox Control 6.0 (SP...)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.