home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / TabControl2066305182007.psc / TabControl32 / modTabControl.bas < prev   
BASIC Source File  |  2007-05-15  |  20KB  |  508 lines

  1. Attribute VB_Name = "modTabControl"
  2. ' ======================================================================================
  3. ' Name:     modTabControl.bas
  4. ' Author:   Joshy Francis (joshylogicss@yahoo.co.in)
  5. ' Date:     14 May 2007
  6. '
  7. ' Requires: None
  8. '
  9. ' Copyright ⌐ 2000-2007 Joshy Francis
  10. ' --------------------------------------------------------------------------------------
  11. 'The implementation of TabControl in VB.All by API.
  12. 'you can freely use this code anywhere.But I wants you must include the copyright info
  13. 'All functions in this module written by me.
  14. ' --------------------------------------------------------------------------------------
  15. 'No updates.This is the first version.
  16. 'I Just included comments on every important lines.Sorry for my bad english.
  17. 'I developed this program by converting the C Documentation to VB and experiments with VB.
  18. 'You can improve this program by your experiments.I didn't done all parts of the
  19. 'TabControl.
  20.  
  21. Option Explicit
  22.  
  23. Public Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
  24. Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
  25. Public Const WS_BORDER = &H800000
  26. Public Const WS_CAPTION = &HC00000                  '  WS_BORDER Or WS_DLGFRAME
  27. Public Const WS_CHILD = &H40000000
  28. Public Const WS_CLIPCHILDREN = &H2000000
  29. Public Const WS_CLIPSIBLINGS = &H4000000
  30. Public Const WS_DISABLED = &H8000000
  31. Public Const WS_DLGFRAME = &H400000
  32. Public Const WS_EX_ACCEPTFILES = &H10&
  33. Public Const WS_EX_DLGMODALFRAME = &H1&
  34. Public Const WS_EX_NOPARENTNOTIFY = &H4&
  35. Public Const WS_EX_TOPMOST = &H8&
  36. Public Const WS_EX_TRANSPARENT = &H20&
  37. Public Const WS_GROUP = &H20000
  38. Public Const WS_HSCROLL = &H100000
  39. Public Const WS_MAXIMIZE = &H1000000
  40. Public Const WS_MAXIMIZEBOX = &H10000
  41. Public Const WS_MINIMIZE = &H20000000
  42. Public Const WS_MINIMIZEBOX = &H20000
  43. Public Const WS_OVERLAPPED = &H0&
  44. Public Const WS_POPUP = &H80000000
  45. Public Const WS_SYSMENU = &H80000
  46. Public Const WS_TABSTOP = &H10000
  47. Public Const WS_THICKFRAME = &H40000
  48. Public Const WS_VISIBLE = &H10000000
  49. Public Const WS_VSCROLL = &H200000
  50. Public Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)
  51. Public Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
  52. Public Const WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
  53. Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
  54. Public Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
  55. Public 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
  56. Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  57. Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  58. Public Const GWL_HINSTANCE = (-6)
  59. Public Const GWL_EXSTYLE = (-20)
  60. Public Const GWL_HWNDPARENT = (-8)
  61. Public Const GWL_ID = (-12)
  62. Public Const GWL_STYLE = (-16)
  63. Public Const GWL_USERDATA = (-21)
  64. Public Const GWL_WNDPROC = (-4)
  65. Public Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  66. 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
  67. Public Declare Function RegisterClass Lib "user32" Alias "RegisterClassA" (Class As WNDCLASS) As Long
  68. Public Type WNDCLASS
  69.     style As Long
  70.     lpfnwndproc As Long
  71.     cbClsextra As Long
  72.     cbWndExtra2 As Long
  73.     hInstance As Long
  74.     hIcon As Long
  75.     hCursor As Long
  76.     hbrBackground As Long
  77.     lpszMenuName As String
  78.     lpszClassName As String
  79. End Type
  80. Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
  81. Public Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
  82. Public Const CS_BYTEALIGNCLIENT = &H1000
  83. Public Const CS_BYTEALIGNWINDOW = &H2000
  84. Public Const CS_CLASSDC = &H40
  85. Public Const CS_DBLCLKS = &H8
  86. Public Const CS_HREDRAW = &H2
  87. Public Const CS_INSERTCHAR = &H2000
  88. Public Const CS_KEYCVTWINDOW = &H4
  89. Public Const CS_NOCLOSE = &H200
  90. Public Const CS_NOKEYCVT = &H100
  91. Public Const CS_NOMOVECARET = &H4000
  92. Public Const CS_OWNDC = &H20
  93. Public Const CS_PARENTDC = &H80
  94. Public Const CS_PUBLICCLASS = &H4000
  95. Public Const CS_SAVEBITS = &H800
  96. Public Const CS_VREDRAW = &H1
  97. 'Public Declare Function INITCOMMONCONTROLSEX Lib "COMCTL32.DLL" Alias "InitCommonControlsEx" (ByVal hInstance As Long) As Long 'Boolean
  98.  
  99. Public Const WM_USER = &H400
  100. Public Type POINTAPI
  101.         x As Long
  102.         y As Long
  103. End Type
  104.  
  105. Public Const CCM_FIRST = &H2000                    ' Common control shared messages
  106. Public Const CCM_SETUNICODEFORMAT = (CCM_FIRST + 5)
  107. Public Const CCM_GETUNICODEFORMAT = (CCM_FIRST + 6)
  108.  
  109. '====== TAB CONTROL ==========================================================
  110. Public Const TCM_FIRST = &H1300                    ' Tab control messages
  111. Public Const WC_TABCONTROLA = "SysTabControl32"
  112.  
  113. ' begin_r_commctrl
  114.  
  115. '#if (_WIN32_IE >= = &h0300)
  116. Public Const TCS_SCROLLOPPOSITE = &H1           ' assumes multiline tab
  117. Public Const TCS_BOTTOM = &H2
  118. Public Const TCS_RIGHT = &H2
  119. Public Const TCS_MULTISELECT = &H4             ' allow multi-select in button mode
  120. '#End If
  121. '#if (_WIN32_IE >= = &h0400)
  122. Public Const TCS_FLATBUTTONS = &H8
  123. '#End If
  124. Public Const TCS_FORCEICONLEFT = &H10
  125. Public Const TCS_FORCELABELLEFT = &H20
  126. '#if (_WIN32_IE >= = &h0300)
  127. Public Const TCS_HOTTRACK = &H40
  128. Public Const TCS_VERTICAL = &H80
  129. '#End If
  130. Public Const TCS_TABS = &H0
  131. Public Const TCS_BUTTONS = &H100
  132. Public Const TCS_SINGLELINE = &H0
  133. Public Const TCS_MULTILINE = &H200
  134. Public Const TCS_RIGHTJUSTIFY = &H0
  135. Public Const TCS_FIXEDWIDTH = &H400
  136. Public Const TCS_RAGGEDRIGHT = &H800
  137. Public Const TCS_FOCUSONBUTTONDOWN = &H1000
  138. Public Const TCS_OWNERDRAWFIXED = &H2000
  139. Public Const TCS_TOOLTIPS = &H4000
  140. Public Const TCS_FOCUSNEVER = &H8000
  141.  
  142. '#if (_WIN32_IE >= = &h0400)
  143. ' EX styles for use with TCM_SETEXTENDEDSTYLE
  144. Public Const TCS_EX_FLATSEPARATORS = &H1
  145. Public Const TCS_EX_REGISTERDROP = &H2
  146. '#End If
  147.  
  148. ' end_r_commctrl
  149.  
  150. Public Const TCM_GETIMAGELIST = (TCM_FIRST + 2)
  151. 'Public Const TabCtrl_GetImageList(hwnd) \
  152. '    (HIMAGELIST)SNDMSG((hwnd), TCM_GETIMAGELIST, 0, 0L)
  153.  
  154. Public Const TCM_SETIMAGELIST = (TCM_FIRST + 3)
  155. 'Public Const TabCtrl_SetImageList(hwnd, himl) \
  156. '    (HIMAGELIST)SNDMSG((hwnd), TCM_SETIMAGELIST, 0, (LPARAM)(UINT)(HIMAGELIST)(himl))
  157.  
  158. Public Const TCM_GETITEMCOUNT = (TCM_FIRST + 4)
  159. 'Public Const TabCtrl_GetItemCount(hwnd) \
  160. '    (int)SNDMSG((hwnd), TCM_GETITEMCOUNT, 0, 0L)
  161.  
  162. Public Const TCIF_TEXT = &H1
  163. Public Const TCIF_IMAGE = &H2
  164. Public Const TCIF_RTLREADING = &H4
  165. Public Const TCIF_PARAM = &H8
  166. '#if (_WIN32_IE >= = &h0300)
  167. Public Const TCIF_STATE = &H10
  168.  
  169. Public Const TCIS_BUTTONPRESSED = &H1
  170. '#End If
  171. '#if (_WIN32_IE >= = &h0400)
  172. Public Const TCIS_HIGHLIGHTED = &H2
  173. '#End If
  174.  
  175. '#if (_WIN32_IE >= = &h0300)
  176. 'Public Const TC_ITEMHEADERA = TCITEMHEADERA
  177. 'Public Const TC_ITEMHEADERW = TCITEMHEADERW
  178. ''#Else
  179. 'Public Const tagTCITEMHEADERA = TC_ITEMHEADERA
  180. 'Public Const TCITEMHEADERA = TC_ITEMHEADERA
  181. 'Public Const tagTCITEMHEADERW = TC_ITEMHEADERW
  182. 'Public Const TCITEMHEADERW = TC_ITEMHEADERW
  183. '#End If
  184. 'Public Const TC_ITEMHEADER = TCITEMHEADER
  185.  
  186. Public Type TCITEMHEADERA 'tagTCITEMHEADERA
  187.  mask As Long '   UINT mask;
  188.  lpReserved1  As Long '   UINT lpReserved1;
  189. lpReserved2    As Long '   UINT lpReserved2;
  190. pszText As String '    LPSTR ;
  191. cchTextMax   As Long '    int cchTextMax;
  192. iImage   As Long '   int iImage;
  193. '} TCITEMHEADERA, FAR *LPTCITEMHEADERA;
  194. End Type
  195. 'Public Type tagTCITEMHEADERW
  196. '    UINT mask;
  197. '    UINT lpReserved1;
  198. '    UINT lpReserved2;
  199. '    LPWSTR pszText;
  200. '    int cchTextMax;
  201. '    int iImage;
  202. '} TCITEMHEADERW, FAR *LPTCITEMHEADERW;
  203. '
  204. '#ifdef UNICODE
  205. 'Public Const  TCITEMHEADER          TCITEMHEADERW
  206. 'Public Const  LPTCITEMHEADER        LPTCITEMHEADERW
  207. '#Else
  208. 'Public Const TCITEMHEADER = TCITEMHEADERA
  209. 'Public Const LPTCITEMHEADER = LPTCITEMHEADERA
  210. '#End If
  211.  
  212. '#if (_WIN32_IE >= = &h0300)
  213. 'Public Const TC_ITEMA = TCITEMA
  214. 'Public Const TC_ITEMW = TCITEMW
  215. ''#Else
  216. 'Public Const tagTCITEMA = TC_ITEMA
  217. 'Public Const TCITEMA = TC_ITEMA
  218. 'Public Const tagTCITEMW = TC_ITEMW
  219. 'Public Const TCITEMW = TC_ITEMW
  220. '#End If
  221. 'Public Const TC_ITEM = TCITEM
  222.  
  223. Public Type TCITEMA 'tagTCITEMA
  224. mask As Long '    UINT mask;
  225. '#if (_WIN32_IE >= = &h0300)
  226. dwState   As Long '   DWORD dwState;
  227. dwStateMask    As Long '   DWORD dwStateMask;
  228. '#Else
  229. lpReserved1   As Long '   UINT lpReserved1;
  230. lpReserved2   As Long '   UINT lpReserved2;
  231. '#End If
  232. pszText As String '    LPSTR pszText;
  233. cchTextMax  As Long '    int cchTextMax;
  234. iImage  As Long '    int iImage;
  235.  
  236.  lParam    As Long '    LPARAM lParam;
  237. '} TCITEMA, FAR *LPTCITEMA;
  238. End Type
  239. 'Public Type tagTCITEMW
  240. '{
  241. '    UINT mask;
  242. '#if (_WIN32_IE >= = &h0300)
  243. '    DWORD dwState;
  244. '    DWORD dwStateMask;
  245. '#Else
  246. '    UINT lpReserved1;
  247. '    UINT lpReserved2;
  248. '#End If
  249. '    LPWSTR pszText;
  250. '    int cchTextMax;
  251. '    int iImage;
  252. '
  253. '    LPARAM lParam;
  254. '} TCITEMW, FAR *LPTCITEMW;
  255. '
  256. '#ifdef UNICODE
  257. 'Public Const  TCITEM                 TCITEMW
  258. 'Public Const  LPTCITEM               LPTCITEMW
  259. '#Else
  260. 'Public Const TCITEM = TCITEMA
  261. 'Public Const LPTCITEM = LPTCITEMA
  262. '#End If
  263.  
  264. Public Const TCM_GETITEMA = (TCM_FIRST + 5)
  265. Public Const TCM_GETITEMW = (TCM_FIRST + 60)
  266.  
  267. '#ifdef UNICODE
  268. 'Public Const TCM_GETITEM = TCM_GETITEMW
  269. '#Else
  270. Public Const TCM_GETITEM = TCM_GETITEMA
  271. '#End If
  272. '
  273. 'Public Const TabCtrl_GetItem(hwnd, iItem, pitem) \
  274. '    (BOOL)SNDMSG((hwnd), TCM_GETITEM, (WPARAM)(int)iItem, (LPARAM)(TC_ITEM FAR*)(pitem))
  275.  
  276. Public Const TCM_SETITEMA = (TCM_FIRST + 6)
  277. Public Const TCM_SETITEMW = (TCM_FIRST + 61)
  278.  
  279. '#ifdef UNICODE
  280. 'Public Const TCM_SETITEM = TCM_SETITEMW
  281. '#Else
  282. Public Const TCM_SETITEM = TCM_SETITEMA
  283. '#End If
  284.  
  285. 'Public Const TabCtrl_SetItem(hwnd, iItem, pitem) \
  286. '    (BOOL)SNDMSG((hwnd), TCM_SETITEM, (WPARAM)(int)iItem, (LPARAM)(TC_ITEM FAR*)(pitem))
  287.  
  288. Public Const TCM_INSERTITEMA = (TCM_FIRST + 7)
  289. Public Const TCM_INSERTITEMW = (TCM_FIRST + 62)
  290.  
  291. '#ifdef UNICODE
  292. 'Public Const TCM_INSERTITEM = TCM_INSERTITEMW
  293. '#Else
  294. Public Const TCM_INSERTITEM = TCM_INSERTITEMA
  295. '#End If
  296.  
  297. 'Public Const TabCtrl_InsertItem(hwnd, iItem, pitem)   \
  298. '    (int)SNDMSG((hwnd), TCM_INSERTITEM, (WPARAM)(int)iItem, (LPARAM)(const TC_ITEM FAR*)(pitem))
  299.  
  300. Public Const TCM_DELETEITEM = (TCM_FIRST + 8)
  301. 'Public Const TabCtrl_DeleteItem(hwnd, i) \
  302. '    (BOOL)SNDMSG((hwnd), TCM_DELETEITEM, (WPARAM)(int)(i), 0L)
  303.  
  304. Public Const TCM_DELETEALLITEMS = (TCM_FIRST + 9)
  305. 'Public Const TabCtrl_DeleteAllItems(hwnd) \
  306. '    (BOOL)SNDMSG((hwnd), TCM_DELETEALLITEMS, 0, 0L)
  307.  
  308. Public Const TCM_GETITEMRECT = (TCM_FIRST + 10)
  309. 'Public Const TabCtrl_GetItemRect(hwnd, i, prc) \
  310. '    (BOOL)SNDMSG((hwnd), TCM_GETITEMRECT, (WPARAM)(int)(i), (LPARAM)(RECT FAR*)(prc))
  311.  
  312. Public Const TCM_GETCURSEL = (TCM_FIRST + 11)
  313. 'Public Const TabCtrl_GetCurSel(hwnd) \
  314. '    (int)SNDMSG((hwnd), TCM_GETCURSEL, 0, 0)
  315.  
  316. Public Const TCM_SETCURSEL = (TCM_FIRST + 12)
  317. 'Public Const TabCtrl_SetCurSel(hwnd, i) \
  318. '    (int)SNDMSG((hwnd), TCM_SETCURSEL, (WPARAM)i, 0)
  319.  
  320. Public Const TCHT_NOWHERE = &H1
  321. Public Const TCHT_ONITEMICON = &H2
  322. Public Const TCHT_ONITEMLABEL = &H4
  323. Public Const TCHT_ONITEM = (TCHT_ONITEMICON Or TCHT_ONITEMLABEL)
  324.  
  325. '#if (_WIN32_IE >= = &h0300)
  326. 'Public Const LPTC_HITTESTINFO = LPTCHITTESTINFO
  327. 'Public Const TC_HITTESTINFO = TCHITTESTINFO
  328. ''#Else
  329. 'Public Const tagTCHITTESTINFO = C_HITTESTINFO
  330. 'Public Const TCHITTESTINFO = TC_HITTESTINFO
  331. 'Public Const LPTCHITTESTINFO = LPTC_HITTESTINFO
  332. '#End If
  333.  
  334. Public Type TCHITTESTINFO 'tagTCHITTESTINFO
  335. pt As POINTAPI '    POINT pt;
  336.  flags As Long '   UINT flags;
  337. '} TCHITTESTINFO, FAR * LPTCHITTESTINFO;
  338. End Type
  339. Public Const TCM_HITTEST = (TCM_FIRST + 13)
  340. 'Public Const TabCtrl_HitTest(hwndTC, pinfo) \
  341. '    (int)SNDMSG((hwndTC), TCM_HITTEST, 0, (LPARAM)(TC_HITTESTINFO FAR*)(pinfo))
  342.  
  343. Public Const TCM_SETITEMEXTRA = (TCM_FIRST + 14)
  344. 'Public Const TabCtrl_SetItemExtra(hwndTC, cb) \
  345. '    (BOOL)SNDMSG((hwndTC), TCM_SETITEMEXTRA, (WPARAM)(cb), 0L)
  346.  
  347. Public Const TCM_ADJUSTRECT = (TCM_FIRST + 40)
  348. 'Public Const TabCtrl_AdjustRect(hwnd, bLarger, prc) \
  349. '    (int)SNDMSG(hwnd, TCM_ADJUSTRECT, (WPARAM)(BOOL)bLarger, (LPARAM)(RECT FAR *)prc)
  350.  
  351. Public Const TCM_SETITEMSIZE = (TCM_FIRST + 41)
  352. 'Public Const TabCtrl_SetItemSize(hwnd, x, y) \
  353. '    (DWORD)SNDMSG((hwnd), TCM_SETITEMSIZE, 0, MAKELPARAM(x,y))
  354.  
  355. Public Const TCM_REMOVEIMAGE = (TCM_FIRST + 42)
  356. 'Public Const TabCtrl_RemoveImage(hwnd, i) \
  357. '        (void)SNDMSG((hwnd), TCM_REMOVEIMAGE, i, 0L)
  358.  
  359. Public Const TCM_SETPADDING = (TCM_FIRST + 43)
  360. 'Public Const TabCtrl_SetPadding(hwnd,  cx, cy) \
  361. '        (void)SNDMSG((hwnd), TCM_SETPADDING, 0, MAKELPARAM(cx, cy))
  362.  
  363. Public Const TCM_GETROWCOUNT = (TCM_FIRST + 44)
  364. 'Public Const TabCtrl_GetRowCount(hwnd) \
  365. '        (int)SNDMSG((hwnd), TCM_GETROWCOUNT, 0, 0L)
  366. Public Const TCM_GETTOOLTIPS = (TCM_FIRST + 45)
  367. 'Public Const TabCtrl_GetToolTips(hwnd) \
  368. '        (HWND)SNDMSG((hwnd), TCM_GETTOOLTIPS, 0, 0L)
  369.  
  370. Public Const TCM_SETTOOLTIPS = (TCM_FIRST + 46)
  371. 'Public Const TabCtrl_SetToolTips(hwnd, hwndTT) \
  372. '        (void)SNDMSG((hwnd), TCM_SETTOOLTIPS, (WPARAM)hwndTT, 0L)
  373.  
  374. Public Const TCM_GETCURFOCUS = (TCM_FIRST + 47)
  375. 'Public Const TabCtrl_GetCurFocus(hwnd) \
  376. '    (int)SNDMSG((hwnd), TCM_GETCURFOCUS, 0, 0)
  377.  
  378. Public Const TCM_SETCURFOCUS = (TCM_FIRST + 48)
  379. 'Public Const TabCtrl_SetCurFocus(hwnd, i) \
  380. '    SNDMSG((hwnd),TCM_SETCURFOCUS, i, 0)
  381.  
  382. '#if (_WIN32_IE >= = &h0300)
  383. Public Const TCM_SETMINTABWIDTH = (TCM_FIRST + 49)
  384. 'Public Const TabCtrl_SetMinTabWidth(hwnd, x) \
  385. '        (int)SNDMSG((hwnd), TCM_SETMINTABWIDTH, 0, x)
  386.  
  387. Public Const TCM_DESELECTALL = (TCM_FIRST + 50)
  388. 'Public Const TabCtrl_DeselectAll(hwnd, fExcludeFocus)\
  389. '        (void)SNDMSG((hwnd), TCM_DESELECTALL, fExcludeFocus, 0)
  390. '#End If
  391.  
  392. '#if (_WIN32_IE >= = &h0400)
  393.  
  394. Public Const TCM_HIGHLIGHTITEM = (TCM_FIRST + 51)
  395. 'Public Const TabCtrl_HighlightItem(hwnd, i, fHighlight) \
  396. '    (BOOL)SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)i, (LPARAM)MAKELONG (fHighlight, 0))
  397.  
  398. Public Const TCM_SETEXTENDEDSTYLE = (TCM_FIRST + 52)    ' optional wParam == mask
  399. 'Public Const TabCtrl_SetExtendedStyle(hwnd, dw)\
  400. '        (DWORD)SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw)
  401.  
  402. Public Const TCM_GETEXTENDEDSTYLE = (TCM_FIRST + 53)
  403. 'Public Const TabCtrl_GetExtendedStyle(hwnd)\
  404. '        (DWORD)SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0)
  405.  
  406. Public Const TCM_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
  407. 'Public Const TabCtrl_SetUnicodeFormat(hwnd, fUnicode)  \
  408. '    (BOOL)SNDMSG((hwnd), TCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
  409.  
  410. Public Const TCM_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
  411. 'Public Const TabCtrl_GetUnicodeFormat(hwnd)  \
  412. '    (BOOL)SNDMSG((hwnd), TCM_GETUNICODEFORMAT, 0, 0)
  413.  
  414. '#End If     ' _WIN32_IE >= = &h0400
  415.  
  416. Public Const TCN_FIRST = 0
  417. Public Const TCN_KEYDOWN = (TCN_FIRST - 0)
  418.  
  419. '#if (_WIN32_IE >= = &h0300)
  420. 'Public Const TC_KEYDOWN = NMTCKEYDOWN
  421. ''#Else
  422. 'Public Const tagTCKEYDOWN = TC_KEYDOWN
  423. 'Public Const NMTCKEYDOWN = TC_KEYDOWN
  424. ''#End If
  425.  
  426. Public Type NMTCKEYDOWN 'tagTCKEYDOWN
  427. hdr As Long '    NMHDR hdr;
  428. wVKey    As Long '   WORD wVKey;
  429. flags    As Long '  UINT flags;
  430. '} NMTCKEYDOWN;
  431. End Type
  432. Public Const TCN_SELCHANGE = (TCN_FIRST - 1)
  433. Public Const TCN_SELCHANGING = (TCN_FIRST - 2)
  434. '#if (_WIN32_IE >= = &h0400)
  435. Public Const TCN_GETOBJECT = (TCN_FIRST - 3)
  436. '#End If     ' _WIN32_IE >= = &h0400
  437. '
  438. '#End If     ' NOTABCONTROL
  439. Public Const ICC_TAB_CLASSES = &H8
  440. Public Enum ComCtlClasses
  441.      ICC_LISTVIEW_CLASSES = &H1      ' listview, header
  442.      ICC_TREEVIEW_CLASSES = &H2       ' treeview, tooltips
  443.      ICC_BAR_CLASSES = &H4            ' toolbar, statusbar, trackbar, tooltips
  444. '     ICC_TAB_CLASSES = &H8            ' tab, tooltips
  445.      ICC_UPDOWN_CLASS = &H10          ' updown
  446.      ICC_PROGRESS_CLASS = &H20        ' progress
  447.      ICC_HOTKEY_CLASS = &H40          ' hotkey
  448.      ICC_ANIMATE_CLASS = &H80         ' animate
  449.      ICC_WIN95_CLASSES = &HFF        '
  450.      ICC_DATE_CLASSES = &H100         ' month picker, date picker, time picker, updown
  451.      ICC_USEREX_CLASSES = &H200       ' comboex
  452.      ICC_COOL_CLASSES = &H400         ' rebar (coolbar) control
  453.     #If (WIN32_IE >= &H400) Then    '
  454.          ICC_INTERNET_CLASSES &H800
  455.          ICC_PAGESCROLLER_CLASS &H1000       ' page scroller
  456.          ICC_NATIVEFNTCTL_CLASS &H2000       ' native font control
  457.     #End If
  458. End Enum
  459. Public Type INITCOMMONCONTROLSEX
  460.     dwSize As Long 'DWORD ;             // size of this structure
  461.     dwICC As ComCtlClasses 'Long 'DWORD ;              // flags indicating which classes to be initialized
  462. End Type '} INITCOMMONCONTROLSEX, *LPINITCOMMONCONTROLSEX;
  463.  
  464. Public Declare Function INITCOMMONCONTROLSEX Lib "COMCTL32.DLL" Alias "InitCommonControlsEx" (ICCClass As INITCOMMONCONTROLSEX) As Long 'Boolean
  465.  
  466. Public Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
  467. Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
  468.  
  469. Public Wnd As Long 'Ony one Global variable for all operations
  470.  
  471. Function CreateTabControl(ByVal hwnd As Long) As Long
  472. 'This is the main function.It Creates a tabcontrol window and returns the window handle
  473. 'You can modify this function by including Coordinate Parameters,style etc.
  474.  
  475. Dim stl As Long
  476.     Dim IX As INITCOMMONCONTROLSEX, Inited  As Long
  477.         IX.dwICC = ICC_TAB_CLASSES
  478.         IX.dwSize = Len(IX)
  479. Inited = INITCOMMONCONTROLSEX(IX)
  480. 'If CommonControl library is not initialized the program does'nt work.
  481.         If Inited <> 1 Then
  482.             MsgBox "INITCOMMONCONTROLSEX Failed.", vbCritical
  483.         End If
  484.     stl = WS_CHILD Or WS_VISIBLE 'Or WS_THICKFRAME
  485. 'Here i gives the different styles for the tabcontrol
  486.  
  487. 'stl = stl Or TCS_BOTTOM 'Tabs appear in bottom
  488. 'stl = stl Or TCS_BUTTONS 'Button Style tabs
  489. 'stl = stl Or TCS_FIXEDWIDTH 'Tabs have fixed width
  490. stl = stl Or TCS_FLATBUTTONS 'FlatButton style
  491. 'stl = stl Or TCS_FORCELABELLEFT '
  492. stl = stl Or TCS_HOTTRACK 'hottracking
  493. stl = stl Or TCS_MULTILINE 'Multi-rows
  494. stl = stl Or TCS_MULTISELECT 'Multiselction
  495. stl = stl Or TCS_TABS 'Style Tabs
  496. 'stl = stl Or TCS_VERTICAL 'Vertical
  497. 'stl = stl Or TCS_RIGHTJUSTIFY
  498. stl = stl Or TCS_TOOLTIPS ' You must create the tooltipcontrol
  499. 'stl = stl Or TCS_FOCUSONBUTTONDOWN 'I didn't deeply tested it
  500. 'stl = stl Or TCS_SCROLLOPPOSITE 'explorerbar style scrolling of tabs
  501. 'stl = stl Or TCS_SINGLELINE ' Adds  scrolling buttons
  502.  
  503. 'Creates the tabcontrolwindow.
  504. 'It is very fast and safe function.In VB the dynamic control creation is not possible when the controls are kept in DLLS that not compatible with VB.
  505. 'If the control not created no errpat e contr    IX.dOen(IX)
  506. Inited = INITCOMMONCOlW
  507.  
  508. PubS