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

界面编程

开发平台:

Visual C++

  1. #ifndef _COOLSB_INTERNAL_INCLUDED
  2. #define _COOLSB_INTERNAL_INCLUDED
  3. #ifdef __cplusplus
  4. extern "C"{
  5. #endif
  6. #include <windows.h>
  7. //
  8. // SCROLLBAR datatype. There are two of these structures per window
  9. //
  10. typedef struct 
  11. {
  12. UINT fScrollFlags; //flags
  13. BOOL fScrollVisible; //if this scrollbar visible?
  14. SCROLLINFO scrollInfo; //positional data (range, position, page size etc)
  15. int nArrowLength; //perpendicular size (height of a horizontal, width of a vertical)
  16. int nArrowWidth; //parallel size (width of horz, height of vert)
  17. //data for inserted buttons
  18. SCROLLBUT sbButtons[MAX_COOLSB_BUTS];
  19. int nButtons;
  20. int nButSizeBefore; //size to the left / above the bar
  21. int nButSizeAfter; //size to the right / below the bar
  22. BOOL fButVisibleBefore; //if the buttons to the left are visible
  23. BOOL fButVisibleAfter; //if the buttons to the right are visible
  24. int nBarType; //SB_HORZ / SB_VERT
  25. UINT fFlatScrollbar; //do we display flat scrollbars?
  26. int nMinThumbSize;
  27. } SCROLLBAR;
  28. //
  29. // Container structure for a cool scrollbar window.
  30. //
  31. typedef struct
  32. {
  33. UINT bars; //which of the scrollbars do we handle? SB_VERT / SB_HORZ / SB_BOTH
  34. WNDPROC oldproc; //old window procedure to call for every message
  35. SCROLLBAR sbarHorz; //one scrollbar structure each for 
  36. SCROLLBAR sbarVert; //the horizontal and vertical scrollbars
  37. BOOL fThumbTracking; // are we currently thumb-tracking??
  38. BOOL fLeftScrollbar; // support the WS_EX_LEFTSCROLLBAR style
  39. HWND hwndToolTip; // tooltip support!!!
  40. //size of the window borders
  41. int cxLeftEdge, cxRightEdge;
  42. int cyTopEdge,  cyBottomEdge;
  43. // To prevent calling original WindowProc in response
  44. // to our own temporary style change (fixes TreeView problem)
  45. BOOL bPreventStyleChange;
  46. } SCROLLWND;
  47. //
  48. // PRIVATE INTERNAL FUNCTIONS
  49. //
  50. SCROLLWND *GetScrollWndFromHwnd(HWND hwnd);
  51. #define InvertCOLORREF(col) ((~col) & 0x00ffffff)
  52. #define COOLSB_TIMERID1 65533 //initial timer
  53. #define COOLSB_TIMERID2 65534 //scroll message timer
  54. #define COOLSB_TIMERID3 -14 //mouse hover timer
  55. #define COOLSB_TIMERINTERVAL1 300
  56. #define COOLSB_TIMERINTERVAL2 55
  57. #define COOLSB_TIMERINTERVAL3 20 //mouse hover time
  58. //
  59. // direction: 0 - same axis as scrollbar (i.e.  width of a horizontal bar)
  60. //             1 - perpendicular dimesion (i.e. height of a horizontal bar)
  61. //
  62. #define SM_CXVERTSB 1
  63. #define SM_CYVERTSB 0
  64. #define SM_CXHORZSB 0
  65. #define SM_CYHORZSB 1
  66. #define SM_SCROLL_WIDTH 1
  67. #define SM_SCROLL_LENGTH 0
  68. #ifdef __cplusplus
  69. }
  70. #endif
  71. #endif