detourtest.c
上传用户:xhri001
上传日期:2022-07-04
资源大小:99k
文件大小:5k
源码类别:

界面编程

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <commctrl.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include "resource.h"
  6. #include "..coolsbcoolscroll.h"
  7. #include "..coolsb_detourscoolsb_detours.h"
  8. #pragma comment (lib, "detours.lib")
  9. void PopulateItem( HWND hTree, HTREEITEM hParent, int childs, int depth )
  10. {
  11.     int i;
  12.     char szText[32];
  13.     TV_INSERTSTRUCT tvis;
  14. for(i = 0; i < childs; i++)
  15. {
  16.         wsprintf(szText, "Item %d - %d", depth, i);
  17.                             
  18.         tvis.hParent = hParent;
  19.         tvis.hInsertAfter = TVI_LAST;
  20.         tvis.item.mask = TVIF_TEXT | TVIF_PARAM | TVIF_STATE;
  21.         tvis.item.pszText = (LPTSTR) szText;
  22.         tvis.item.iImage = 0;
  23.         tvis.item.iSelectedImage = 0;
  24.         tvis.item.state = 0;
  25.         tvis.item.stateMask = 0;
  26.         tvis.item.lParam = i;
  27.         if ( depth > 0 )
  28.             PopulateItem(hTree, TreeView_InsertItem(hTree, &tvis), childs, depth-1);
  29.     }
  30.     TreeView_Expand(hTree, hParent, TVE_EXPAND);
  31. }
  32. BOOL CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  33. {
  34. HWND hwndCtrl;
  35. LVCOLUMN lvcol;
  36. int i;
  37. char szText[32];
  38. switch(msg)
  39. {
  40. case WM_INITDIALOG:
  41. //
  42. // Apply Cool Scrollbars to EDIT control
  43. //
  44. hwndCtrl = GetDlgItem(hwnd, IDC_EDIT1);
  45. InitializeCoolSB(hwndCtrl);
  46. CoolSB_SetStyle(hwndCtrl, SB_BOTH, CSBS_HOTTRACKED);
  47. //
  48. // Apply Cool Scrollbars to LISTBOX control
  49. //
  50. hwndCtrl = GetDlgItem(hwnd, IDC_LIST1);
  51. InitializeCoolSB(hwndCtrl);
  52. CoolSB_SetStyle(hwndCtrl, SB_BOTH, CSBS_HOTTRACKED);
  53. for(i = 0; i < 50; i++)
  54. {
  55. wsprintf(szText, "Line %d", i);
  56. SendMessage(hwndCtrl, LB_ADDSTRING, 0, (LONG)szText);
  57. }
  58. //
  59. // Apply Cool Scrollbars to LISTVIEW control
  60. //
  61. hwndCtrl = GetDlgItem(hwnd, IDC_LIST2);
  62. lvcol.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_FMT;
  63. lvcol.cx   = 64;
  64. lvcol.iSubItem = 0;
  65. lvcol.pszText = "Name";
  66. ListView_InsertColumn(hwndCtrl, 0, &lvcol);
  67. lvcol.pszText = "Size";
  68. lvcol.cx   = 64;
  69. lvcol.fmt  = LVCFMT_RIGHT;
  70. ListView_InsertColumn(hwndCtrl, 1, &lvcol);
  71. for(i = 0; i < 50; i++)
  72. {
  73. LVITEM lvitem;
  74. lvitem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE;
  75. lvitem.iSubItem = 0;
  76. lvitem.pszText = "item";
  77. lvitem.iItem = i;
  78. lvitem.state = 0;
  79. lvitem.stateMask = 0;
  80. ListView_InsertItem(hwndCtrl, &lvitem);
  81. wsprintf(szText, "%d", i);
  82. ListView_SetItemText(hwndCtrl, i, 1, szText);
  83. }
  84.         InitializeCoolSB(hwndCtrl);
  85. CoolSB_SetStyle(hwndCtrl, SB_BOTH, CSBS_HOTTRACKED);
  86.         
  87.         //
  88. // Apply Cool Scrollbars to a TREEVIEW control!
  89. //
  90. hwndCtrl = GetDlgItem(hwnd, IDC_TREE);
  91.         PopulateItem( hwndCtrl, TVI_ROOT, 2, 10 );
  92.         InitializeCoolSB(hwndCtrl);
  93. CoolSB_SetStyle(hwndCtrl, SB_BOTH, CSBS_HOTTRACKED);
  94. return TRUE;
  95. case WM_CLOSE:
  96. EndDialog(hwnd, 0);
  97. return TRUE;
  98. case WM_COMMAND:
  99. switch(LOWORD(wParam))
  100. {
  101. case IDOK: case IDCANCEL:
  102. EndDialog(hwnd, 0);
  103. return TRUE;
  104. }
  105. break;
  106. }
  107. return FALSE;
  108. }
  109. int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nShowCmd)
  110. {
  111. CoolSB_InitializeApp();
  112. DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), 0, DlgProc);
  113. CoolSB_UninitializeApp();
  114. return 0;
  115. }
  116. /*
  117. #include <windows.h>
  118. #include <commctrl.h>
  119. #include "resource.h"
  120. #include "..coolsbcoolscroll.h"
  121. #include "..coolsb_detourscoolsb_detours.h"
  122. #pragma comment (lib, "..\coolsb_detours\detours.lib")
  123. BOOL CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  124. {
  125. HWND hwndCtrl;
  126. LVCOLUMN lvcol;
  127. int i;
  128. char szText[32];
  129. switch(msg)
  130. {
  131. case WM_INITDIALOG:
  132. //
  133. // Apply Cool Scrollbars to EDIT control
  134. //
  135. hwndCtrl = GetDlgItem(hwnd, IDC_EDIT1);
  136. InitializeCoolSB(hwndCtrl);
  137. CoolSB_SetStyle(hwndCtrl, SB_BOTH, CSBS_HOTTRACKED);
  138. //
  139. // Apply Cool Scrollbars to LISTBOX control
  140. //
  141. hwndCtrl = GetDlgItem(hwnd, IDC_LIST1);
  142. InitializeCoolSB(hwndCtrl);
  143. CoolSB_SetStyle(hwndCtrl, SB_BOTH, CSBS_HOTTRACKED);
  144. for(i = 0; i < 50; i++)
  145. {
  146. wsprintf(szText, "Line %d", i);
  147. SendMessage(hwndCtrl, LB_ADDSTRING, 0, (LONG)szText);
  148. }
  149. //
  150. // Apply Cool Scrollbars to LISTVIEW control
  151. //
  152. hwndCtrl = GetDlgItem(hwnd, IDC_LIST2);
  153. lvcol.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_FMT;
  154. lvcol.cx   = 64;
  155. lvcol.iSubItem = 0;
  156. lvcol.pszText = "Name";
  157. ListView_InsertColumn(hwndCtrl, 0, &lvcol);
  158. lvcol.pszText = "Size";
  159. lvcol.cx   = 64;
  160. lvcol.fmt  = LVCFMT_RIGHT;
  161. ListView_InsertColumn(hwndCtrl, 1, &lvcol);
  162. for(i = 0; i < 50; i++)
  163. {
  164. LVITEM lvitem;
  165. lvitem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE;
  166. lvitem.iSubItem = 0;
  167. lvitem.pszText = "item";
  168. lvitem.iItem = i;
  169. lvitem.state = 0;
  170. lvitem.stateMask = 0;
  171. ListView_InsertItem(hwndCtrl, &lvitem);
  172. wsprintf(szText, "%d", i);
  173. ListView_SetItemText(hwndCtrl, i, 1, szText);
  174. }
  175. InitializeCoolSB(hwndCtrl);
  176. CoolSB_SetStyle(hwndCtrl, SB_BOTH, CSBS_HOTTRACKED);
  177. return TRUE;
  178. case WM_CLOSE:
  179. EndDialog(hwnd, 0);
  180. return TRUE;
  181. case WM_COMMAND:
  182. switch(LOWORD(wParam))
  183. {
  184. case IDOK: case IDCANCEL:
  185. EndDialog(hwnd, 0);
  186. return TRUE;
  187. }
  188. break;
  189. }
  190. return FALSE;
  191. }
  192. int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nShowCmd)
  193. {
  194. CoolSB_InitializeApp();
  195. DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), 0, DlgProc);
  196. CoolSB_UninitializeApp();
  197. return 0;
  198. }*/