25. april 2001 - 12:07
Der er
3 kommentarer og
2 løsninger
Gennemsigtig form i VB6 ?
Hvordan kan man lave en gennemsigtig form?
Jeg vil gerne have cuttet kanterne af og så kun beholde så man kan se shapes og buttons.
Man skal samtidig have mulighed for at kunne trække rundt med vinduet, som man ellers ville have gjort med captions baren.
Jeg håber på et behjælpeligt svar ;)
Mvh
Morten Frost Baunbæk
26. april 2001 - 17:46
#2
Du kan måske bruge dette:
Dim FW As Long \' form width (in pixels)
Dim FH As Long \' form height (in pixels)
Dim FillMode As Long
Private Sub Command1_Click()
Dim hRgn As Long
Dim RetVal As Long
Dim Points(8) As POINTAPI
Points(0).x = 200
Points(0).y = 0
Points(1).x = 600
Points(1).y = 0
Points(2).x = 600
Points(2).y = 50
Points(3).x = 300
Points(3).y = 50
Points(4).x = 275
Points(4).y = 100
Points(5).x = 250
Points(5).y = 100
Points(6).x = 275
Points(6).y = 50
Points(7).x = 200
Points(7).y = 50
hRgn = CreatePolygonRgn(Points(0), 8, FillMode)
Call SetWindowRgn(Form1.hWnd, hRgn, True)
End Sub
Med det kan du shape winduet som du vil (punkt for punkt) dog skal du også bruge et modul med følgende:
Public Declare Function SetWindowRgn Lib \"user32\" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Public Declare Function CreatePolygonRgn Lib \"gdi32\" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Public Declare Function CreatePolyPolygonRgn Lib \"gdi32\" (lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Public Declare Function GetPolyFillMode Lib \"gdi32\" (ByVal hdc As Long) As Long
Public Declare Function CreateEllipticRgn Lib \"gdi32\" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function CreateRoundRectRgn Lib \"gdi32\" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Public Declare Function CombineRgn Lib \"gdi32\" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Public Declare Sub Sleep Lib \"kernel32\" (ByVal dwMilliseconds As Long)
Public Declare Function CreateRectRgn Lib \"gdi32\" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Type POINTAPI
x As Long
y As Long
End Type
Public Const RGN_AND = 1
Public Const RGN_COPY = 5
Public Const RGN_DIFF = 4
Public Const RGN_OR = 2
Public Const RGN_XOR = 3
Jeg ved dog stadig ikke hvordan man kan flytte rundt med winduet, men håber det hjælper dig!
26. april 2001 - 17:47
#3
btw, jeg ved ikke lige om det er alle dem i modulet som skal bruges, da der lige var en som viste mig det