Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Tranparente RichTextBox

619 views
Skip to first unread message

Martin H.

unread,
Jun 19, 2008, 11:22:38 AM6/19/08
to
Hallo,

ich habe folgendes Problem: Der nachfolgende Code nutzt die RichTextBox
aus der msftedit.dll, die neuer ist als die RichTextBox von .NET und
u.a. Transparenz erlaubt.

Public Class RichEdit50
Inherits RichTextBox

Declare Auto Function LoadLibrary Lib "kernel32.dll" (ByVal lpFileName _
As String) As IntPtr

Private Const WS_EX_TRANSPARENT As Int32 = &H20I

Public Sub New()
SetStyle(ControlStyles.SupportsTransparentBackColor, True)
End Sub

Protected Overloads Overrides ReadOnly Property CreateParams() As _
CreateParams
Get
Dim prams As CreateParams = MyBase.CreateParams
If LoadLibrary("msftedit.dll") <> IntPtr.Zero Then
If BackColor = Color.Transparent Then
prams.ExStyle = prams.ExStyle Or WS_EX_TRANSPARENT
End If
prams.ClassName = "RICHEDIT50W"
End If
Return prams
End Get
End Property


Das Problem ist nur, daß wenn ich in der transparenten RichTextBox Text
eintippe, erscheinen neben den Buchstaben senkrechte Striche.
Beim Markieren von Buchstaben, werden die Buchstaben blau unterlegt und
nach einem Klick in die RichTextBox (Markierung aufheben) bleibt die
Unterlegung.

Wie kann ich diese beiden Probleme beheben?

Besten Dank im voraus!

Martin

Kerem Gümrükcü

unread,
Jun 19, 2008, 10:40:02 PM6/19/08
to
Hallo Martin,

>Wie kann ich diese beiden Probleme beheben?

ich tippe jetzt nur mal: Vielleicht hilft
ein erzwungenes neuzeichnen des RTB
Inhallts,...probiers mal,...

Grüße

Kerem

--
--
-----------------------
Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Microsoft Live Space: http://kerem-g.spaces.live.com/
Latest Open-Source Projects: http://entwicklung.junetz.de
-----------------------
"This reply is provided as is, without warranty express or implied."

"Martin H." <hk...@gmx.net> schrieb im Newsbeitrag
news:485a79bd$1...@127.0.0.1...

Martin H.

unread,
Jun 22, 2008, 9:33:56 AM6/22/08
to
Also,

falls es für jemanden nochmal interessant sein sollte:

Der vorher angegebene Code funktioniert - unter der Voraussetzung,
daß die RTF-Box sich in einem Container befindet.
Das Problem das ich hatte lag darin begründet, daß ich die RTF-Box
über eine PictureBox gelegt hatte. Jetzt, nachdem das Hintergrundbild
in einem Panel ist und die transparente RTF-Box auf dem Panel liegt,
funktioniert es.

Der Hinweis lag auf
http://msdn.microsoft.com/en-us/library/aa453060.aspx

WS_EX_TRANSPARENT: Specifies that a window created with this style
should not be painted until its siblings have been painted. The window
appears transparent because the bits of underlying sibling windows have
already been painted.

Beste Grüße,

Martin

0 new messages