| This code is for Windows 95 or NT. The SetWindowRgn call is not defined for Windows 3.x so you can only do it there by sub-classing the window and handling all drawing yourself. Try starting a new project, set the borderstyle for Form1 to 0 (None), make the form square and then add this code: 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 DeleteObject Lib "gdi32" _ (ByVal hObject As Long) As Long Private Declare Function SetWindowRgn Lib "user32" _ (ByVal hWnd As Long, ByVal hRgn As Long, _ ByVal bRedraw As Long) As Long Private hRegion As Long Sub Form_Load () Dim x As Long Me.ScaleMode = vbPixels hRegion = CreateEllipticRgn(0, 0, Me.ScaleWidth, Me.ScaleHeight) x = SetWindowRgn(Me.hWnd, hRegion, True) End Sub Sub Form_Unload (Cancel As Integer) Dim x As Long Me.Visible = False ' must be gone before region is deleted! x = DeleteObject(hRegion) End Sub Sub Form_Click () Unload Me ' need a clean way out! (this is just for testing) End Sub To make non-round forms use the other API calls to create a region of whatever shape is desired. Some of the other region calls are: Private Declare Function CreateRectRgnIndirect Lib "gdi32" _ (lpRect As RECT) As Long Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long,_ ByVal Y1 As Long,ByVal X2 As Long,ByVal Y2 As Long) As Long Private Declare Function CreateEllipticRgnIndirect Lib "gdi32" _ (lpRect As Rect) As Long Private Declare Function CreatePolyPolygonRgn Lib "gdi32" _ (lpPoint As POINTAPI,lpPolyCounts As Long,ByVal nCount As Long,_ ByVal nPolyFillMode As Long) As Long Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI,_ ByVal nCount As Long,ByVal nPolyFillMode As Long) As Long Private Const WINDING=2 Private Const ALTERNATE=1 Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Type POINTAPI x As Long y As Long End Type |
Non-Rectangular Forms |
Express News India | Freelance ecommerce web development India