Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0037: Bitmap mit API in eine RichTextBox einfügen

 von 

Beschreibung 

Wer will kann mit diesem Tip eine beliebige Grafik in eine Richtextbox einbauen. Das ganze funktioniert über die SendMessage-API.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

SendMessageA (SendMessage)

Download:

Download des Beispielprojektes [13,36 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei project1.vbp -------------
' Die Komponente ' (RICHTX32.OCX)' wird benötigt.

'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command2"
' Steuerelement: Bildfeld-Steuerelement "Picture2"
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Bildfeld-Steuerelement "Picture1"
' Steuerelement: RichTextBox "RichTextBox1"

Option Explicit

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
        
Const WM_PASTE = &H302

Private Sub Command1_Click()
    Clipboard.Clear
    Clipboard.SetData Picture1.Picture

    SendMessage RichTextBox1.hwnd, WM_PASTE, 0, 0
End Sub

Private Sub Command2_Click()
  Clipboard.Clear
  Clipboard.SetData Picture2.Picture
    
  SendMessage RichTextBox1.hwnd, WM_PASTE, 0, 0
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 5 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Harald Otto am 23.05.2004 um 08:13

Hallo,
für ein Rechenaufgabenprogramm habe ich echte Brüche (2/3, 2 1/5 usw) in der Schreibweise mit waagerechtem Bruchstrich in Bitmaps dargestellt, diese füge ich in das RTF-Feld ein.
Ich frage mich, ob es eine direktere Methode gibt, vielleicht in einem anderen Textfeld, das ich nicht kenne?
Falls Sie Rat wissen, würde mir das sehr helfen.
Vielen Dank im voraus

Harald O.

Kommentar von Conz am 17.07.2002 um 10:32

Das ist Bockmist, weil es z. B. nicht funktioniert wenn die TextBox gelockt ist. Außerdem kann man die Grafiken mit der Maus anpassen, obwohl ich RichTextBox1.Locked = True gesetzt habe.
Füge ich einmal wieder Text zur Box hinzu ist sowieso mein bild wieder weg. Bringt also garnix. Ist wie viele andere Dinge nur eine total unbefriedigende Sache dieser Source.

Kommentar von qUarR[y] am 30.04.2002 um 00:50

ja mich interessiert es auch brennend, wie man das unterbinden könnte!!!

Kommentar von Neumeier H.-P. am 29.10.2001 um 09:04

ist es möglich, zu unterbinden, dass ich die Bilder mit der Maus in der Größe anpassen kann? Wenn ja, wie?

Kommentar von Michael am 01.03.2001 um 16:13

Kann ich es auch schaffen, dass die Bitmap so eingebunden wird, dass sie nicht den Textfluss stört, sprich, dass sie z.B. neben dem Text liegt und sozusagen eingebunden ist? Ich stelle diese Frage hier, weil das Forum bei mir im Moment nicht klappt.
Weiß da jemand was?