VB-Homepage Tipp 349

Grafiken in RTF Control einbinden

Geht nicht !
Damit gebe es diesen Tipp auch nicht.

Also konkreter, es geht nicht, einem RTF Control eine Grafik,
wie ZBsp. über LoadPicture oder ähnlichem zuzuweisen.

Wer aber Grafiken einbinden möchte, der kann dies mit einem kleinen Umweg schon tun, denn unterstützen kann dieses Control auch Grafikanzeigen.
Der Umweg lautet hier = ZWISCHENABLAGE

Für ein Beispiel binden Sie das RTF Control in Ihr Projekt ein.
(Komponenten hinzufügen [Microsoft Rich Textbox Control 6.0 - Richtx32.ocx])

Fügen Sie nun ein RTF Control Ihrer Form hinzu und vergrößern Sie es auf die gewünschte Darstellung.

Desweiteren benötigen Sie für die Auswahl des gewünschten Bildes noch ein DriveListBox, DirListbox und FileListbox Objekt.
Definieren Sie die Abhängigkeiten der Anzeige zwischen diesen drei Objekten.
Sie können das Projekt natürlich auch zur Nutzung des CommonControls modifizieren.

Das Einfügen der Grafik könnte dann zum Beispiel über das Doppelklick (DblClick) Event der FileListBox erfolgen und würde in etwa so aussehen.

Private Sub File1_DblClick()
Picture1.Picture = LoadPicture(Dir1 & "\" & File1)

Clipboard.Clear
Clipboard.SetData Picture1.Picture

RichTextBox1.Text = ""
SendMessage RichTextBox1.hwnd, WM_PASTE, 0, 0

Clipboard.Clear

End Sub

Das war es aber noch nicht ganz, vielleicht haben Sie schon bemerkt,
das für die Zuweisung die SendMessage Funktion benutzt wird,
es bedarf also noch einiger Angaben unter
Allgemein/Deklarationen

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

Starten Sie Ihr Projekt, wählen Sie eine Grafikdatei aus und senden Sie diese an das RTF Control.


Tipp-Download

Quelle :

Zurück zur Übersichtsseite