Hallo zusammen,
ich nutze folgenden Code, um in einer PictureBox auf einem Hintergrundbild eine Raute einzuzeichnen:
Ich möchte die Raute nun allerding nicht opak ausfüllen, sondern "halbtransparent", also sagen wir mal mit 60% Transparenz. Geht das mit dieser Funktion? Oder gibt es eine andere Funktion, mit der das geht?
Für zierführende Hinweise Danke im Voraus,
Sarek
ich nutze folgenden Code, um in einer PictureBox auf einem Hintergrundbild eine Raute einzuzeichnen:
Visual Basic-Quellcode
- Rem Typen und API-Aufrufe für die Zeichenfunktionen
- Private Type pointapi
- X As Long
- Y As Long
- End Type
- Private Declare Function Polygon Lib "gdi32" (ByVal hdc As _
- Long, lpPoint As pointapi, ByVal nCount As Long) As Long
- Private Declare Function CreateEllipticRgn Lib "gdi32" ( _
- ByVal X1 As Long, _
- ByVal Y1 As Long, _
- ByVal X2 As Long, _
- ByVal Y2 As Long) As Long
- Private Declare Function CreateRectRgn Lib "gdi32.dll" ( _
- ByVal X1 As Long, _
- ByVal Y1 As Long, _
- ByVal X2 As Long, _
- ByVal Y2 As Long) As Long
- Private Declare Function PtInRegion Lib "gdi32" ( _
- ByVal hRgn As Long, _
- ByVal X As Long, _
- ByVal Y As Long) As Long
- Private Declare Function PaintRgn Lib "gdi32" ( _
- ByVal hdc As Long, _
- ByVal hRgn As Long) As Long
- Private Declare Function DeleteObject Lib "gdi32" ( _
- ByVal hObject As Long) As Long
- Dim Region As Long
- Dim Innen As Long
- Function Raute(Seitenlaenge, Farbe)
- X = 395 'Mittelpunkt der Raute auf dem Hintergrundbild
- Y = 400
- h = Round(Sqr(2 * Seitenlaenge ^ 2) / 2, 0)
- X1 = X
- Y1 = Y - h
- X2 = X + h
- Y2 = Y
- X3 = X
- Y3 = Y + h
- X4 = X - h
- Y4 = Y
- BaseForm.Picture1.FillColor = Farbe
- BaseForm.Picture1.ForeColor = Farbe
- Dim ret As Long
- Dim pt(1 To 4) As pointapi
- pt(1).X = X1
- pt(1).Y = Y1
- pt(2).X = X2
- pt(2).Y = Y2
- pt(3).X = X3
- pt(3).Y = Y3
- pt(4).X = X4
- pt(4).Y = Y4
- ret = Polygon(BaseForm.Picture1.hdc, pt(1), 4)
- BaseForm.Picture1.Refresh
- Raute = Y3
- End Function
Ich möchte die Raute nun allerding nicht opak ausfüllen, sondern "halbtransparent", also sagen wir mal mit 60% Transparenz. Geht das mit dieser Funktion? Oder gibt es eine andere Funktion, mit der das geht?
Für zierführende Hinweise Danke im Voraus,
Sarek