Rubrik: Controls · TextBox & RichTextBox | VB-Versionen: VB4, VB5, VB6 | 26.11.00 |
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