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

Soyez le premier à donner votre avis sur cette source.

Vue 6 530 fois - Téléchargée 785 fois


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

Ajouter un commentaire

Commentaires

ldx
Messages postés
23
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
3 mai 2005
-
Recherche et essais effectués sur le OLEObjects.Add il en ressort que l'image apparaît sous forme d'icône et que de cliquer dessus renvoie sur le programme Paint.

Malheureusement il semble donc que cette instruction soit inutilisable
ldx
Messages postés
23
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
3 mai 2005
-
merci pour l'info. Je vais voir de ce pas ...
cs_NISANDSYSTEMS
Messages postés
179
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
9 janvier 2010
-
Bien sur que si. le server Ole

ex: RichTextBox.OleObjects.Add , , , " Ton image.Bmp"
Pym Corp
Messages postés
167
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
18 novembre 2007
-
Y a pas d'autres solution que celle de passer par le presse-papier ?

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.