home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / COM_Detect18280412112004.psc / Module1.bas < prev   
BASIC Source File  |  2004-12-05  |  3KB  |  53 lines

  1. Attribute VB_Name = "Module1"
  2. Public Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  3. Public Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  4. Public Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
  5. Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
  6. Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  7. Public Declare Sub ReleaseCapture Lib "user32" ()
  8. Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  9. Public Const SIZE_SE = &HF008& 'COOOL!!!!!
  10. Public Const RGN_AND = 1
  11. Public Const RGN_COPY = 5
  12. Public Const RGN_DIFF = 4
  13. Public Const RGN_OR = 2
  14. Public Const RGN_XOR = 3
  15. Public Const SRCCOPY = &HCC0020
  16.  
  17. Sub ShapeTheForm(TheForm As Form)                                                                                                                                                                                                         'This code and all parts of it Copyright (C) 2001 Jeff Katz
  18. With TheForm
  19. If TheForm.Width < 4200 Then
  20. TheForm.Width = 4200
  21. Exit Sub
  22. End If
  23. If TheForm.Height < 3000 Then
  24. TheForm.Height = 3000
  25. Exit Sub
  26. End If
  27. 'this gets called alot so make it quick
  28. thematrix = CreateRectRgn(0, 0, .ScaleWidth, .ScaleHeight)   'The Whole Form
  29. notthematrix = CreateRectRgn(0, 0, .ScaleWidth, .ScaleHeight) 'The Whole Form
  30.  
  31. a = CreateRectRgn(10, 0, .ScaleWidth - 10, .ScaleHeight) '[] the form
  32. b = CreateRectRgn(0, 10, .ScaleWidth, .ScaleHeight - 10) ' = the form
  33.  
  34.  c = CreateEllipticRgn(0, 0, 20, 20) 'upper left corner
  35.  d = CreateEllipticRgn(0, .ScaleHeight, 20, .ScaleHeight - 20)
  36.  e = CreateEllipticRgn(.ScaleWidth, 0, .ScaleWidth - 20, 20)
  37.  f = CreateEllipticRgn(.ScaleWidth, .ScaleHeight, .ScaleWidth - 20, .ScaleHeight - 20)
  38.  
  39.  
  40. g = CombineRgn(thematrix, thematrix, a, 4) 'cut out pieces
  41. g = CombineRgn(thematrix, thematrix, b, 4) 'cut out pieces
  42. g = CombineRgn(thematrix, thematrix, c, 4) 'cut out pieces
  43. g = CombineRgn(thematrix, thematrix, d, 4) 'cut out pieces
  44. g = CombineRgn(thematrix, thematrix, e, 4) 'cut out pieces
  45. g = CombineRgn(thematrix, thematrix, f, 4) 'cut out pieces
  46. g = CombineRgn(thematrix, notthematrix, thematrix, 4) 'invert
  47.  
  48. m = SetWindowRgn(., f,ong, ByVal Y2 As Long) As b0YautWil onst SIZE_SE = eao0!tnvert
  49.  
  50. m =0!tnowR's b f,ong, ByVaCtriCong) By notahrBxva
  51. mtriCong) By notahrBxva
  52. mtriCong0 By tWil onst SIZE_SEDieces
  53. g = CombineRgn(t - 10 iliptic[t - 10 iliptic[t - 10 iliev- 10BZE_nng, ByVaCtriCongea a a a a a a a a a