Jeg ved ikke lige helt hvodan der skal gøres, men jeg har prøvet at søge på http://www.planet-source-code.com/ med ordene forms and shapes (eller lign.), der findes i hvertfald noget der som man måske kan bruge.
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!
tak sjh, den var en del lettere (bortset fra alle underkoderne som jeg lige skal studere lidt nærmere...og det virker :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.