home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / Basic / GridOne / setup.EXE / GDI.BAS < prev    next >
Encoding:
BASIC Source File  |  2001-09-09  |  9.5 KB  |  256 lines

  1. Attribute VB_Name = "modGDI"
  2. '-----------------------------------------------------------------------------
  3. ' This is a part of the BeeGrid ActiveX control.
  4. ' Copyright ⌐ 2000 Stinga
  5. ' All rights reserved.
  6. '
  7. ' You have a right to use and distribute the BeeGrid sample files in original
  8. ' form or modified, provided that you agree that Stinga has no warranty,
  9. ' obligations, or liability for any sample application files.
  10. '-----------------------------------------------------------------------------
  11. Option Explicit
  12.  
  13. Public Type POINTAPI
  14.    x As Long
  15.    Y As Long
  16. End Type
  17.  
  18. Public Type RECT
  19.    Left As Long
  20.    Top As Long
  21.    Right As Long
  22.    Bottom As Long
  23. End Type
  24.  
  25. ' Constants
  26. Public Const OPAQUE = 2
  27. Public Const TRANSPARENT = 1
  28. Public Const DT_BOTTOM = &H8
  29. Public Const DT_CALCRECT = &H400
  30. Public Const DT_CHARSTREAM = 4
  31. Public Const DT_EXPANDTABS = &H40
  32. Public Const DT_DISPFILE = 6
  33. Public Const DT_EXTERNALLEADING = &H200
  34. Public Const DT_INTERNAL = &H1000
  35. Public Const DT_LEFT = &H0
  36. Public Const DT_NOCLIP = &H100
  37. Public Const DT_NOPREFIX = &H800
  38. Public Const DT_PLOTTER = 0
  39. Public Const DT_RASCAMERA = 3
  40. Public Const DT_METAFILE = 5
  41. Public Const DT_RASDISPLAY = 1
  42. Public Const DT_RASPRINTER = 2
  43. Public Const DT_RIGHT = &H2
  44. Public Const DT_SINGLELINE = &H20
  45. Public Const DT_TABSTOP = &H80
  46. Public Const DT_TOP = &H0
  47. Public Const DT_VCENTER = &H4
  48. Public Const DT_WORDBREAK = &H10
  49. Public Const DT_CENTER = &H1
  50.  
  51. Public Const ANSI_CHARSET = 0
  52. Public Const OUT_DEFAULT_PRECIS = 0
  53. Public Const CLIP_DEFAULT_PRECIS = 0
  54. Public Const DEFAULT_QUALITY = 0
  55. Public Const PROOF_QUALITY = 2
  56. Public Const FF_DONTCARE = 0
  57. Public Const PS_SOLID = 0
  58. Public Const PS_NULL = 5
  59. Public Const PS_DASH = 1
  60. Public Const PS_DASHDOT = 3
  61. Public Const PS_DASHDOTDOT = 4
  62. Public Const PS_DOT = 2
  63.  
  64. Public Const BACKGROUND_COLOR = &H80000010
  65. Public Const BDR_RAISEDOUTER = &H1
  66. Public Const BDR_SUNKENOUTER = &H2
  67. Public Const BDR_RAISEDINNER = &H4
  68. Public Const BDR_SUNKENINNER = &H8
  69.  
  70. Public Const BDR_OUTER = &H3
  71. Public Const BDR_INNER = &HC
  72. Public Const BDR_RAISED = &H5
  73. Public Const BDR_SUNKEN = &HA
  74.  
  75. Public Const EDGE_RAISED = (BDR_RAISEDOUTER Or BDR_RAISEDINNER)
  76. Public Const EDGE_SUNKEN = (BDR_SUNKENOUTER Or BDR_SUNKENINNER)
  77. Public Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER)
  78. Public Const EDGE_BUMP = (BDR_RAISEDOUTER Or BDR_SUNKENINNER)
  79.  
  80. Public Const BF_LEFT = &H1
  81. Public Const BF_TOP = &H2
  82. Public Const BF_RIGHT = &H4
  83. Public Const BF_BOTTOM = &H8
  84. Public Const BF_SOFT = &H1000
  85.  
  86. Public Const BF_TOPLEFT = (BF_TOP Or BF_LEFT)
  87. Public Const BF_TOPRIGHT = (BF_TOP Or BF_RIGHT)
  88. Public Const BF_BOTTOMLEFT = (BF_BOTTOM Or BF_LEFT)
  89. Public Const BF_BOTTOMRIGHT = (BF_BOTTOM Or BF_RIGHT)
  90. Public Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)
  91. Public Const BF_TAB = (BF_LEFT Or BF_TOP Or BF_RIGHT)
  92. 'sys colors
  93. Public Const COLOR_ACTIVEBORDER = 10
  94. Public Const COLOR_ACTIVECAPTION = 2
  95. Public Const COLOR_ADJ_MAX = 100
  96. Public Const COLOR_ADJ_MIN = -100
  97. Public Const COLOR_APPWORKSPACE = 12
  98. Public Const COLOR_BACKGROUND = 1
  99. Public Const COLOR_BTNFACE = 15
  100. Public Const COLOR_BTNHIGHLIGHT = 20
  101. Public Const COLOR_BTNSHADOW = 16
  102. Public Const COLOR_BTNTEXT = 18
  103. Public Const COLOR_CAPTIONTEXT = 9
  104. Public Const COLOR_GRAYTEXT = 17
  105. Public Const COLOR_HIGHLIGHT = 13
  106. Public Const COLOR_HIGHLIGHTTEXT = 14
  107. Public Const COLOR_INACTIVEBORDER = 11
  108. Public Const COLOR_INACTIVECAPTION = 3
  109. Public Const COLOR_INACTIVECAPTIONTEXT = 19
  110. Public Const COLOR_MENU = 4
  111. Public Const COLOR_MENUTEXT = 7
  112. Public Const COLOR_SCROLLBAR = 0
  113. Public Const COLOR_WINDOW = 5
  114. Public Const COLOR_WINDOWFRAME = 6
  115. Public Const COLOR_WINDOWTEXT = 8
  116. Public Const COLOR_3DDKSHADOW = 21
  117. Public Const COLOR_3DLIGHT = 22
  118. Public Const COLOR_INFOTEXT = 23
  119. Public Const COLOR_INFOBK = 24
  120.  
  121. Public Const BF_DIAGONAL = &H10
  122. 'font stuff
  123. Public Const LF_FACESIZE = 32
  124.  
  125. Public Type LOGFONT
  126.         lfHeight As Long
  127.         lfWidth As Long
  128.         lfEscapement As Long
  129.         lfOrientation As Long
  130.         lfWeight As Long
  131.         lfItalic As Byte
  132.         lfUnderline As Byte
  133.         lfStrikeOut As Byte
  134.         lfCharSet As Byte
  135.         lfOutPrecision As Byte
  136.         lfClipPrecision As Byte
  137.         lfQuality As Byte
  138.         lfPitchAndFamily As Byte
  139.         lfFaceName(LF_FACESIZE) As Byte
  140. End Type
  141.  
  142. Public Const FW_NORMAL = 400
  143. Public Const FW_BOLD = 700
  144.  
  145. 'DrawIconEx const
  146. Public Const DI_MASK = 1
  147. Public Const DI_IMAGE = 2
  148. Public Const DI_NORMAL = 3
  149. Public Const DI_COMPAT = 4
  150. Public Const DI_DEFAULTSIZE = 8
  151.  
  152. Public Const SRCCOPY = &HCC0020
  153.  
  154. Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
  155. Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
  156.  
  157. Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
  158.  
  159. Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, _
  160.                                                              ByVal O As Long, ByVal W As Long, ByVal I As Long, _
  161.                                                              ByVal u As Long, ByVal S As Long, ByVal C As Long, _
  162.                                                              ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, _
  163.                                                              ByVal PAF As Long, ByVal F As String) As Long
  164. Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
  165. Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
  166. Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
  167. Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  168. Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
  169. Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
  170. Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
  171. Declare Function DrawText Lib "user32" Alias "DrawTextA" _
  172.    (ByVal hdc As Long, ByVal lpStr As String, _
  173.    ByVal nCount As Long, lpRect As RECT, _
  174.    ByVal wFormat As Long) As Long
  175.                                                           
  176. Public Declare Function DrawEdge Lib "user32" _
  177.    (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, _
  178.    ByVal grfFlags As Long) As Boolean
  179. Public Declare Function FillRect Lib "user32" _
  180.    (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
  181. Declare Function Rectangle Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  182. Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  183. Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
  184. Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal Y As Long, lpPoint As POINTAPI) As Long
  185. Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal Y As Long) As Long
  186. Public Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
  187. Public Declare Function PtInRect Lib "user32" (RECT As RECT, ByVal lPtX As Long, ByVal lPtY As Long) As Integer
  188. Public Declare Function DrawIconEx Lib "user32" _
  189.    (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, _
  190.    ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, _
  191.    ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, _
  192.    ByVal diFlags As Long) As Long
  193. Public Declare Function DrawIcon Lib "user32" _
  194.    (ByVal hdc As Long, ByVal x As Long, ByVal Y As Long, _
  195.    ByVal hIcon As Long) As Long
  196. Public Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, _
  197.    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
  198. Public Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
  199.  
  200.  
  201. Public Sub DrawTriangle(hdc&, clr&, left&, top&, right&, bottom&, direction&)
  202.  
  203.    Dim hBrush As Long
  204.    Dim hPen As Long
  205.    Dim hOldBrush As Long
  206.    Dim hOldPen As Long
  207.    
  208.    ' Create pen and brush
  209.    hPen = CreatePen(0, 0, RGB(0, 0, 0))
  210.    hBrush = CreateSolidBrush(clr)
  211.    hOldPen = SelectObject(hdc, hPen)
  212.    hOldBrush = SelectObject(hdc, hBrush)
  213.  
  214.    ' Draw triangle
  215.    Dim points(3) As POINTAPI
  216.    points(0).x = left
  217.    points(0).y = (top + bottom) / 2
  218.    points(1).x = right
  219.    points(1).y = top
  220.    points(2).x = right
  221.    points(2).y = bottom
  222.    
  223.    Polygon hdc, points(0), 3
  224.                            
  225.    ' Release pen and brush
  226.    SelectObject hdc, hOldPen
  227.    SelectObject hdc, hOldBrush
  228.    DeleteObject hPen
  229.    DeleteObject hBrush
  230. End Sub
  231.  
  232. Public Sub DrawRectangle(hdc&, clr&, Left&, Top&, Right&, Bottom&)
  233.  
  234.    Dim hBrush As Long
  235.    Dim hPen As Long
  236.    Dim hOldBrush As Long
  237.    Dim hOldPen As Long
  238.    
  239.    ' Create pen and brush
  240.    hPen = CreatePen(0, 0, RGB(0, 0, 0))
  241.    hBrush = CreateSolidBrush(clr)
  242.    hOldPen = SelectObject(hdc, hPen)
  243.    hOldBrush = SelectObject(hdc, hBrush)
  244.  
  245.    ' Draw rectangle
  246.    Rectangle hdc, Left, Top, Right, Bottom
  247.                            
  248.    ' Release pen and brush
  249.    SelectObject hdc, hOldPen
  250.    SelectObject hdc, hOldBrush
  251.    DeleteObject hPen
  252.    DeleteObject hBrush
  253. End Sub
  254.  
  255.  
  256.