Rubrik: Controls · TextBox & RichTextBox | VB-Versionen: VB4, VB5, VB6 | 26.11.00 |
Bilder in der RTF-Textbox Wußten Sie, wie man ein Bild in eine RTF-Textbox einfügen kann?Ganz einfach! Über die Windows-Zwischenablage.Kopieren Sie hierzu das entsprechende B... | ||
Autor: Michael Imhof | Bewertung: | Views: 39.520 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wußten Sie, wie man ein Bild in eine RTF-Textbox einfügen kann?
Ganz einfach! Über die Windows-Zwischenablage.
Kopieren Sie hierzu das entsprechende Bild in die Zwischenablage und fügen es dann in die RTF-Textbox ein. Um den Vorgang zu automatisieren, wird der Kopieren- und Einfügen-Befehl direkt im Quellcode "programmiert".
' zunächst die benötigten Deklarationen Private Declare Sub Sleep Lib "kernel32" ( _ ByVal dwMilliseconds As Long) 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 ' Bild per Quellcode einfügen Private Sub CopyPictureToRTF(RTF As Control, Bild As Picture) Dim Buf As Variant Dim Text As String If Clipboard.GetFormat(vbCFText) = True Then ' Wenn in der Zwischenablage Text ist, ' wird er in einem String gespeichert Text = Clipboard.GetText Else ' ansonsten in einer Variant Variable Buf = Clipboard.GetData End If ' Zwischenablage löschen und Bild kopieren Clipboard.Clear Clipboard.SetData Picture1.Picture DoEvents ' Bild per SendMessage in RTF-Box einfügen SendMessage RTF.hwnd, WM_PASTE, 0, 0 DoEvents Sleep 3000 ' zur Sicherheit kurz warten ' Zwischenablage wieder löschen, da das Bild ' sonst in der Zwischenablage bleibt Clipboard.Clear ' Falls vor dem Kopieren des Bildes ein Text oder ' sonstiger Inhalt in der Zwischenablage war, schreiben wir ' diesen wieder zurück in die Zwischenablage If Text <> "" Then Clipboard.SetText Text Else Clipboard.SetData Buf End If End Sub
Ein kleines Beispiel:
Plazieren Sie ein RTF-, ein Picture- und ein Command-Steuerelement auf die Form. Weisen Sei dem Picture-Steuerelement ein beliebiges Bild zu. Durch Klicken auf den CommandButton soll dann das Bild an die aktuelle Eingabeposition im RTF-Textfeld eingefügt werden.
' Bild einfügen Private Sub Command1_Click() CopyPictureToRTF RTFTextBox1, Picture1.Picture End Sub