home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / XP_Menu_'2762294262002.psc / m_GlobeXP.bas < prev   
Encoding:
BASIC Source File  |  2002-04-23  |  9.2 KB  |  210 lines

  1. Attribute VB_Name = "m_GlobeXP"
  2. 'deklarac API funkci a datovych struktur pouzitych v priklade
  3. Option Explicit
  4.  
  5. 'datovy typ CTVEREC
  6. Type RECT
  7.     Left As Long
  8.     Top As Long
  9.     Right As Long
  10.     Bottom As Long
  11. End Type
  12.  
  13. 'datovy typ SOURADNICE BODU
  14. Type POINTAPI
  15.     x As Long
  16.     y As Long
  17. End Type
  18.  
  19. 'datova struktura obsahujici informace o menuitem, kdyz se vytvari menu
  20. Type MEASUREITEMSTRUCT  'structura obsahujici informace o menuitem
  21.     CtlType As Long
  22.     CtlID As Long
  23.     itemID As Long
  24.     itemWidth As Long
  25.     itemHeight As Long
  26.     ItemData As Long
  27. End Type
  28.  
  29. 'datova struktura obsahujici informace o menuitem, kdyz se kresli menuitems
  30. Type DRAWITEMSTRUCT
  31.     CtlType As Long
  32.     CtlID As Long
  33.     itemID As Long
  34.     itemAction As Long
  35.     itemState As Long
  36.     hwndItem As Long
  37.     hDC As Long
  38.     rcItem As RECT
  39.     ItemData As Long
  40. End Type
  41.  
  42. 'datova struktura obsahujici informace o menuitem
  43. Type MENUITEMINFO
  44.     cbSize As Long
  45.     fMask As Long
  46.     fType As Long
  47.     fState As Long
  48.     wID As Long
  49.     hSubMenu As Long
  50.     hbmpChecked As Long
  51.     hbmpUnchecked As Long
  52.     dwItemData As Long
  53.     dwTypeData As String
  54.     cch As Long
  55.     hbmpItem As Long
  56. End Type
  57.  
  58. Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hDC As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As POINTAPI) As Long
  59. Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long) As Long
  60.  
  61. 'API pro SUBCLASSING
  62. Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  63. Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  64. Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  65.  
  66. 'API pro vytvoreni MENU
  67. Declare Function CreateMenu Lib "user32" () As Long
  68. Declare Function CreatePopupMenu Lib "user32" () As Long
  69. Declare Function GetMenu Lib "user32" (ByVal hWnd As Long) As Long
  70. Declare Function DestroyMenu Lib "user32" (ByVal hMenu As Long) As Long
  71. Declare Function SetMenu Lib "user32" (ByVal hWnd As Long, ByVal hMenu As Long) As Long
  72. Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
  73. Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long
  74. Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
  75. Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Long) As Long
  76. Declare Function ModifyStringMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As String) As Long
  77. Declare Function GetMenuState Lib "user32" (ByVal hMenu As Long, ByVal wID As Long, ByVal wFlags As Long) As Long
  78. Declare Function CheckMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDCheckItem As Long, ByVal wCheck As Long) As Long
  79. Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
  80. Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal B As Long, lpMenuItemInfo As MENUITEMINFO) As Long
  81. Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
  82. Declare Function TrackPopupMenuEx Lib "user32" (ByVal hMenu As Long, ByVal un As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal hWnd As Long, lpTPMParams As Any) As Long
  83.  
  84. 'API pro vykreslovanir a vypisovani MenuItems
  85. Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)
  86. Declare Sub SetSysColors Lib "user32" (ByVal nChanges As Integer, lpSysColor As Integer, lpColorValues As Long)
  87. Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  88. Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
  89. Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Integer
  90. Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
  91. Declare Function GetSysColor Lib "user32" (ByVal nIndex As Integer) As Long
  92. Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
  93. Declare Function SetBkMode Lib "gdi32" (ByVal hDC As Long, ByVal nBkMode As Long) As Long
  94. Declare Function GetTextColor Lib "gdi32" (ByVal hDC As Long) As Long
  95. Declare Function SetTextColor Lib "gdi32" (ByVal hDC As Long, ByVal crColor As Long) As Long
  96. Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
  97. 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
  98. Declare Function MoveToEx Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, lpPoint As Any) As Long 'POINTAPI) As Long
  99. Declare Function LineTo Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long) As Long
  100. Declare Function InvertRect Lib "user32" (ByVal hDC As Long, lpRect As RECT) As Long
  101. 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
  102. Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
  103. Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hDC As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
  104. Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal i As Long, ByVal u As Long, ByVal s As Long, ByVal c As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long
  105. Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long
  106. Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long
  107. Declare Function FillRect Lib "user32" (ByVal hDC As Long, lpRect As RECT, ByVal hBrush As Long) As Long
  108.  
  109. 'hodnoty pro typy fontu
  110. Public Const TRANSPARENT = 1
  111. Public Const OPAQUE = 2
  112. Public Const NEWTRANSPARENT = 3
  113.  
  114. 'DefWndProc
  115. Public Const GWL_WNDPROC = (-4)
  116.  
  117. ' MenuItem flags => informace o jaky se vlastne jedna MenuItem
  118. Public Const MF_CHECKED = &H8&
  119. Public Const MF_DISABLED = &H2&
  120. Public Const MF_ENABLED = &H0&
  121. Public Const MF_GRAYED = &H1&
  122. Public Const MF_POPUP = &H10&
  123. Public Const MF_SEPARATOR = &H800&
  124. Public Const MF_STRING = &H0&
  125. Public Const MF_UNCHECKED = &H0&
  126. Public Const MF_BITMAP = &H4&
  127. Public Const MF_BYPOSITION = &H400&
  128. Public Const MF_BYCOMMAND = &H0&
  129. Public Const MF_HELP = &H4000&
  130. Public Const MF_HILITE = &H80&
  131. Public Const MF_MENUBARBREAK = &H20&
  132. Public Const MF_MENUBREAK = &H40&
  133. Public Const MF_OWNERDRAW = &H100&
  134. Public Const MF_USECHECKBITMAPS = &H200&
  135. Public Const MFS_DEFAULT = &H1000&
  136. Public Const MIIM_ID = &H2
  137. Public Const MIIM_SUBMENU = &H4
  138. Public Const MIIM_TYPE = &H10
  139. Public Const MIIM_DATA = &H20
  140.  
  141. ' Windows messages => tak takovydle vsechny zpravy se budou odchytavat
  142. Public Const WM_COMMAND = &H111
  143. Public Const WM_MENUSELECT = &H11F
  144. Public Const WM_SETFOCUS = &H7
  145. Public Const WM_ACTIVATE = &H6
  146. Public Const WM_ACTIVATEAPP = &H1C
  147. Public Const WM_MEASUREITEM = &H2C
  148. Public Const WM_DRAWITEM = &H2B
  149. Public Const WM_GETFONT = &H31
  150.  
  151. ' DrawItemStruct konstanty => hodnoty urcujici stav a typ chovani menuitem
  152. Public Const ODS_CHECKED = &H8
  153. Public Const ODS_DISABLED = &H4
  154. Public Const ODS_FOCUS = &H10
  155. Public Const ODS_GRAYED = &H2
  156. Public Const ODS_SELECTED = &H1
  157. Public Const ODS_NOFOCUSRECT = &H200
  158. Public Const ODT_MENU = 1
  159. Public Const ODA_DRAWENTIRE = &H1
  160. Public Const ODA_FOCUS = &H4
  161. Public Const ODA_SELECT = &H2
  162.  
  163. ' Barvy pera
  164. Public Const COLOR_BTNHIGHLIGHT = 20
  165. Public Const COLOR_BTNSHADOW = 16
  166.  
  167. ' DrawText
  168. Public Const DT_LEFT = &H0
  169.  
  170. ' konstanty barev
  171. Public Enum ColConst
  172.     ActiveBorder = 10
  173.     ActiveCaption = 2
  174.     ADJ_MAX = 100
  175.     ADJ_MIN = -100
  176.     APPWORKSPACE = 12
  177.     Background = 1
  178.     BTNFACE = 15
  179.     BTNHIGHLIGHT = 20
  180.     BTNSHADOW = 16
  181.     BTNTEXT = 18
  182.     CAPTIONTEXT = 9
  183.     GRAYTEXT = 17
  184.     HIGHLIGHT = 13
  185.     HIGHLIGHTTEXT = 14
  186.     INACTIVEBORDER = 11
  187.     INACTIVECAPTION = 3
  188.     INACTIVECAPTIONTEXT = 19
  189.     Menu = 4
  190.     MENUTEXT = 7
  191.     SCROLLBAR = 0
  192.     WINDOW = 5
  193.     WINDOWFRAME = 6
  194.     WINDOWTEXT = 8
  195. End Enum
  196.  
  197. '======================================================================================
  198.  
  199. Public Type WINDOWPOS
  200.     hWnd As Long
  201.     hWndInsertAfter As Long
  202.     x As Long
  203.     y As Long
  204.     cx As Long
  205.     cy As Long
  206.     flags As Long
  207. End Type
  208.  
  209. Type NCCALCSIZE_ng
  210.