home *** CD-ROM | disk | FTP | other *** search
/ Dan Appleman's Visual Bas…s Guide to the Win32 API / Dan.Applmans.Visual.Basic.5.0.Programmers.Guide.To.The.Win32.API.1997.Ziff-Davis.Press.CD / VB5PG32.mdf / classlib / desaware / dwbrush.cls < prev    next >
Encoding:
Text File  |  1996-04-05  |  4.9 KB  |  163 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "dwBrush"
  6. Attribute VB_Creatable = True
  7. Attribute VB_Exposed = True
  8. Option Explicit
  9.  
  10. ' Class dwBrush
  11. ' Brush drawing object control and configuration class
  12. ' Copyright (c) 1996 by Desaware Inc.
  13. ' Part of the Desaware API Classes Library
  14.  
  15. ' Brush objects always reference a valid handle, stock or created
  16.  
  17. #If Win32 Then
  18. Private ihBrush As Long
  19. #Else
  20. Private ihBrush As Integer
  21. #End If
  22.  
  23. Private bCreated As Boolean  ' Brush was created
  24.  
  25. #If Win32 Then
  26. Private Declare Function apiGetStockObject& Lib "gdi32" Alias "GetStockObject" (ByVal nIndex As Long)
  27. Private Declare Function apiDeleteObject& Lib "gdi32" Alias "DeleteObject" (ByVal hObject As Long)
  28. Private Declare Function apiCreateBrushIndirect& Lib "gdi32" Alias "CreateBrushIndirect" (lpLogBrush As LOGBRUSH)
  29. Private Declare Function apiCreateHatchBrush& Lib "gdi32" Alias "CreateHatchBrush" (ByVal nIndex As Long, ByVal crColor As Long)
  30. Private Declare Function apiCreateSolidBrush& Lib "gdi32" Alias "CreateSolidBrush" (ByVal crColor As Long)
  31. Private Declare Function apiGetObjectType Lib "gdi32" (ByVal hgdiobj As Long) As Long
  32.  
  33. #Else
  34. Private Declare Function apiGetStockObject% Lib "gdi" Alias "GetStockObject" (ByVal nIndex As Integer)
  35. Private Declare Function apiDeleteObject% Lib "gdi" Alias "DeleteObject" (ByVal hObject As Integer)
  36. Private Declare Function apiCreateBrushIndirect% Lib "gdi" Alias "CreateBrushIndirect" (lpLogBrush As LOGBRUSH)
  37. Private Declare Function apiCreateHatchBrush% Lib "gdi" Alias "CreateHatchBrush" (ByVal nIndex As Integer, ByVal crColor As Long)
  38. Private Declare Function apiCreateSolidBrush% Lib "gdi" Alias "CreateSolidBrush" (ByVal crColor As Long)
  39. #End If 'WIN32
  40.  
  41. Public Property Get hBrush() As Long
  42.     hBrush = ihBrush
  43. End Property
  44.  
  45. Public Property Let hBrush(vNewValue As Long)
  46.     #If Win32 Then
  47.         If apiGetObjectType(vNewValue) <> OBJ_BRUSH Then
  48.             RaiseBrushError DWERR_INVALIDPARAMETER
  49.         End If
  50.     #End If
  51.     
  52.     Cleanup
  53.     ihBrush = vNewValue
  54. End Property
  55.  
  56. Public Property Get Created() As Boolean
  57.     Created = bCreated
  58. End Property
  59.  
  60. Public Property Let Created(vNewValue As Boolean)
  61.     If vNewValue Then bCreated = True
  62. End Property
  63.  
  64. Private Sub Class_Initialize()
  65.     ihBrush = apiGetStockObject(WHITE_BRUSH)
  66. End Sub
  67.  
  68. ' Delete any allocated objects
  69. Public Sub Cleanup()
  70.     If bCreated Then
  71.         Call apiDeleteObject(ihBrush)
  72.         bCreated = False
  73.         ihBrush = apiGetStockObject(WHITE_BRUSH)
  74.     End If
  75. End Sub
  76.  
  77. Private Sub Class_Terminate()
  78.     Cleanup
  79. End Sub
  80.  
  81. Public Property Get WHITE_BRUSH() As Integer
  82.     WHITE_BRUSH = 0
  83. End Property
  84.  
  85. Public Property Get LTGRAY_BRUSH() As Integer
  86.     LTGRAY_BRUSH = 1
  87. End Property
  88.  
  89. Public Property Get GRAY_BRUSH() As Integer
  90.     GRAY_BRUSH = 2
  91. End Property
  92.  
  93. Public Property Get DKGRAY_BRUSH() As Integer
  94.     DKGRAY_BRUSH = 3
  95. End Property
  96.  
  97. Public Property Get BLACK_BRUSH() As Integer
  98.     BLACK_BRUSH = 4
  99. End Property
  100.  
  101. Public Property Get NULL_BRUSH() As Integer
  102.     NULL_BRUSH = 5
  103. End Property
  104.  
  105. Public Sub GetStockObject(idx%)
  106. Attribute GetStockObject.VB_HelpID = 2569
  107. Attribute GetStockObject.VB_Description = "Help available in Visual Basic Programmer's Guide to Win32 API CD ROM"
  108.     Cleanup
  109.     If idx < WHITE_BRUSH Or idx > NULL_BRUSH Then
  110.         RaiseBrushError DWERR_INVALIDPARAMETER
  111.     Else
  112.         ihBrush = apiGetStockObject(idx)
  113.     End If
  114. End Sub
  115.  
  116. Public Sub CreateSolidBrush(ByVal crColor As Long)
  117. Attribute CreateSolidBrush.VB_HelpID = 2518
  118. Attribute CreateSolidBrush.VB_Description = "Help available in Visual Basic Programmer's Guide to Win32 API CD ROM"
  119.     Dim ret&
  120.     ret& = apiCreateSolidBrush(crColor)
  121.     If ret& = 0 Then RaiseBrushError
  122.     Cleanup
  123.     ihBrush = ret&
  124.     bCreated = True
  125. End Sub
  126.  
  127. Public Sub CreateHatchBrush(ByVal nIndex, crColor As Long)
  128. Attribute CreateHatchBrush.VB_HelpID = 2505
  129. Attribute CreateHatchBrush.VB_Description = "Help available in Visual Basic Programmer's Guide to Win32 API CD ROM"
  130.     Dim ret&
  131.     
  132.     ret& = apiCreateHatchBrush(nIndex, crColor)
  133.     If ret& = 0 Then RaiseBrushError
  134.     Cleanup
  135.     ihBrush = ret&
  136.     bCreated = True
  137. End Sub
  138.  
  139. Public Sub CreateBrushIndirect(lpLogBrush As dwLogBrush)
  140. Attribute CreateBrushIndirect.VB_HelpID = 2492
  141. Attribute CreateBrushIndirect.VB_Description = "Help available in Visual Basic Programmer's Guide to Win32 API CD ROM"
  142.     Dim tempBrush As LOGBRUSH
  143.     Dim ret&
  144.     
  145.     lpLogBrush.CopyToLOGBRUSH agGetAddressForObject(tempBrush)
  146.     ret& = apiCreateBrushIndirect(tempBrush)
  147.     If ret& = 0 Then RaiseBrushError
  148.     Cleanup
  149.     ihBrush = ret&
  150.     bCreated = True
  151. End Sub
  152.  
  153. Private Sub RaiseBrushError(Optional errval)
  154.     Dim useerr%
  155.     If IsMissing(errval) Then
  156.         RaiseBrushError DWERR_APIRESULT
  157.     Else
  158.         RaiseError errval, "dwBrush"
  159.     End If
  160. End Sub
  161.  
  162.  
  163.