home *** CD-ROM | disk | FTP | other *** search
/ Eagles Nest BBS 6 / Eagles_Nest_Mac_Collection_Disc_6.TOAST / Windows / VisBasAPIex / VBAPIGUIDE.image / CLIPVIEW.FRM < prev    next >
Text File  |  1992-12-01  |  2KB  |  76 lines

  1. VERSION 2.00
  2. Begin Form Clipview 
  3.    Caption         =   "Clipping Region Demo"
  4.    Height          =   4710
  5.    Left            =   1035
  6.    LinkMode        =   1  'Source
  7.    LinkTopic       =   "Form1"
  8.    ScaleHeight     =   4020
  9.    ScaleWidth      =   7365
  10.    Top             =   1140
  11.    Width           =   7485
  12.    Begin Menu MenuRegion 
  13.       Caption         =   "Region"
  14.       Begin Menu MenuElliptic 
  15.          Caption         =   "Elliptic"
  16.       End
  17.       Begin Menu MenuEllipticNorect 
  18.          Caption         =   "Elliptic-Rect"
  19.       End
  20.    End
  21. End
  22.  
  23. '   Create an eliptical region that fits in the window
  24. '
  25. Sub MenuElliptic_Click ()
  26.     Dim rc As RECT
  27.     GetClientRect hWnd, rc
  28.     ClippingRegion% = CreateEllipticRgnIndirect(rc)
  29.     ' ShowClip selects the ellipse as the clipping region,
  30.     ' then fills the window to show the clipping effect.
  31.     ShowClip ClippingRegion%
  32.     ' Be sure to delete the region when done.
  33.     dummy% = DeleteObject(ClippingRegion%)
  34. End Sub
  35.  
  36. ' This shows the creation of a more complex region.
  37. '
  38. Sub MenuEllipticNorect_Click ()
  39.     Dim rc As RECT, rc2 As RECT
  40.     Dim rgn2%
  41.  
  42.     GetClientRect hWnd, rc
  43.     ' Start with the same clipping region used in MenuElliptic
  44.     ClippingRegion% = CreateEllipticRgnIndirect(rc)
  45.     
  46.     ' Make a copy of a rectangle describing the form size
  47.     dummy% = CopyRect(rc2, rc)
  48.     ' Shrink it by 75 pixels on a side
  49.     InflateRect rc2, -75, -75
  50.     ' Then convert the rectangle into a region
  51.     rgn2% = CreateRectRgnIndirect(rc2)
  52.  
  53.     ' Combine the regions using the difference operation
  54.     dummy% = CombineRgn(ClippingRegion%, ClippingRegion%, rgn2%, RGN_DIFF)
  55.  
  56.     ' And now select this as the clipping region.
  57.     ShowClip ClippingRegion%
  58.  
  59.     ' Delete both regions when done
  60.     dummy% = DeleteObject(ClippingRegion%)
  61.     dummy% = DeleteObject(rgn2%)
  62.  
  63. End Sub
  64.  
  65. ' Selects the specified region as the clipping region,
  66. ' the fills the form.  Only the area in the region will be
  67. ' filled - the rest is "clipped" out.
  68. '
  69. Sub ShowClip (rgn%)
  70.     clipview.Cls
  71.     dummy% = SelectClipRgn%(clipview.hDC, rgn%)
  72.     Line (0, 0)-(clipview.ScaleWidth, clipview.ScaleHeight), , BF
  73.     dummy% = SelectClipRgn%(clipview.hDC, 0)
  74. End Sub
  75.  
  76.