XTPagerCtrl.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:12k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPagerCtrl.h interface for the CXTPagerCtrl class.
  2. //
  3. // This file is a part of the XTREME CONTROLS MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPAGERCTRL_H__)
  22. #define __XTPAGERCTRL_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. //===========================================================================
  28. // Summary:
  29. //     CXTPagerCtrl is a CWnd derived class. It is used to contain and scroll
  30. //     another window, and wraps the windows pager API.
  31. //===========================================================================
  32. class _XTP_EXT_CLASS CXTPagerCtrl : public CWnd
  33. {
  34. DECLARE_DYNAMIC(CXTPagerCtrl)
  35. public:
  36. //-----------------------------------------------------------------------
  37. // Summary:
  38. //     Constructs a CXTPagerCtrl object
  39. //-----------------------------------------------------------------------
  40. CXTPagerCtrl();
  41. //-----------------------------------------------------------------------
  42. // Summary:
  43. //     Destroys a CXTPagerCtrl object, handles cleanup and deallocation
  44. //-----------------------------------------------------------------------
  45. virtual ~CXTPagerCtrl();
  46. public:
  47. //-----------------------------------------------------------------------
  48. // Summary:
  49. //     This member function creates a pager child window and attaches it to
  50. //     this CWnd object. Returns nonzero if successful, otherwise returns zero.
  51. // Parameters:
  52. //     dwStyle    - Specifies the window style attributes. See the Remarks section for a list of style to use.
  53. //     rect       - The size and position of the window, in client coordinates of
  54. //                  'pParentWnd'.
  55. //     pParentWnd - The parent window.
  56. //     nID        - The ID of the child window.
  57. // Remarks:
  58. //     Styles to be added or removed can be combined by using the bitwise
  59. //     OR (|) operator. It can be one or more of the following:<p/>
  60. //     * <b>PGS_AUTOSCROLL</b> The pager control will scroll when the
  61. //       user hovers the mouse over one of the scroll buttons.
  62. //     * <b>PGS_DRAGNDROP</b> The contained window can be a drag-and-drop
  63. //       target. The pager control will automatically scroll if an item
  64. //       is dragged from outside the pager over one of the scroll buttons.
  65. //     * <b>PGS_HORZ</b> Creates a pager control that can be scrolled
  66. //       horizontally. This style and the PGS_VERT style are mutually
  67. //       exclusive and cannot be combined.
  68. //     * <b>PGS_VERT</b> Creates a pager control that can be scrolled
  69. //       vertically. This is the default direction; no direction style
  70. //       is specified. This style and the PGS_HORZ style are mutually
  71. //       exclusive and cannot be combined.
  72. //-----------------------------------------------------------------------
  73. virtual BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
  74. //-----------------------------------------------------------------------
  75. // Summary:
  76. //     This member function sets the contained window for the pager control.
  77. //     This command will not change the parent of the contained window. It
  78. //     only assigns a window handle to the pager control for scrolling. In
  79. //     most cases, the contained window will be a child window. If this is
  80. //     the case, the contained window should be a child of the pager control.
  81. // Parameters:
  82. //     hwndChild - Handle to the window to be contained.
  83. //-----------------------------------------------------------------------
  84. void SetChild(HWND hwndChild);
  85. //-----------------------------------------------------------------------
  86. // Summary:
  87. //     This member function forces the pager control to recalculate the
  88. //     size of the contained window. Using this command will result in a
  89. //     PGN_CALCSIZE notification being sent.
  90. //-----------------------------------------------------------------------
  91. void RecalcSize();
  92. //-----------------------------------------------------------------------
  93. // Summary:
  94. //     This member function enables or disables mouse forwarding for the
  95. //     pager control. When mouse forwarding is enabled, the pager control
  96. //     forwards WM_MOUSEMOVE messages to the contained window.
  97. // Parameters:
  98. //     bForward - BOOL value that determines if mouse forwarding is enabled or
  99. //                disabled. If this value is nonzero, mouse forwarding is enabled.
  100. //                If this value is zero, mouse forwarding is disabled.
  101. //-----------------------------------------------------------------------
  102. void ForwardMouse(BOOL bForward);
  103. //-----------------------------------------------------------------------
  104. // Summary:
  105. //     This member function sets the current background color for the pager
  106. //     control.
  107. // Parameters:
  108. //     clr - COLORREF value that contains the new background color of the
  109. //           pager control.
  110. // Returns:
  111. //     A COLORREF value that contains the previous background color.
  112. //-----------------------------------------------------------------------
  113. COLORREF SetBkColor(COLORREF clr);
  114. //-----------------------------------------------------------------------
  115. // Summary:
  116. //     This member function retrieves the current background color for
  117. //     the pager control.
  118. // Returns:
  119. //     A COLORREF value that contains the current background color.
  120. //-----------------------------------------------------------------------
  121. COLORREF GetBkColor();
  122. //-----------------------------------------------------------------------
  123. // Summary:
  124. //     This member function sets the current border size for the pager
  125. //     control.
  126. // Parameters:
  127. //     iBorder - New size of the border, in pixels. This value should not be
  128. //               larger than the pager button or less than zero. If 'iBorder'
  129. //               is too large, the border will be drawn the same size as the
  130. //               button. If 'iBorder' is negative, the border size will be set
  131. //               to zero.
  132. // Returns:
  133. //     An integer value that contains the previous border size in pixels.
  134. //-----------------------------------------------------------------------
  135. int SetBorder(int iBorder);
  136. //-----------------------------------------------------------------------
  137. // Summary:
  138. //     This member function retrieves the current border size for the pager
  139. //     control.
  140. // Returns:
  141. //     An integer value that contains the current border size in pixels.
  142. //-----------------------------------------------------------------------
  143. int GetBorder();
  144. //-----------------------------------------------------------------------
  145. // Summary:
  146. //     This member function sets the scroll position for the pager control.
  147. // Parameters:
  148. //     iPos - Integer value that contains the new scroll position in pixels.
  149. //-----------------------------------------------------------------------
  150. void SetPos(int iPos);
  151. //-----------------------------------------------------------------------
  152. // Summary:
  153. //     This member function retrieves the current scroll position of the
  154. //     pager control.
  155. // Returns:
  156. //     An integer value that contains the current scroll position in pixels.
  157. //-----------------------------------------------------------------------
  158. int GetPos();
  159. //-----------------------------------------------------------------------
  160. // Summary:
  161. //     This member function sets the current button size for the pager
  162. //     control.
  163. // Parameters:
  164. //     iSize - Integer value that contains the new button size in pixels.
  165. // Returns:
  166. //     An integer value that contains the previous button size in pixels.
  167. //-----------------------------------------------------------------------
  168. int SetButtonSize(int iSize);
  169. //-----------------------------------------------------------------------
  170. // Summary:
  171. //     This member function retrieves the current button size for the pager
  172. //     control.
  173. // Returns:
  174. //     An integer value that contains the current button size in pixels.
  175. //-----------------------------------------------------------------------
  176. int GetButtonSize();
  177. //-----------------------------------------------------------------------
  178. // Summary:
  179. //     This member function retrieves the state of the specified button
  180. //     in a pager control.
  181. // Parameters:
  182. //     iButton - Indicates which button to retrieve the state for. See the description
  183. //               for 'iButton' in PGM_GETBUTTONSTATE for a list of possible values.
  184. // Returns:
  185. //     The state of the button specified in 'iButton'. See the return value
  186. //     description in PGM_GETBUTTONSTATE for a list of possible values.
  187. //-----------------------------------------------------------------------
  188. DWORD GetButtonState(int iButton);
  189. //-----------------------------------------------------------------------
  190. // Summary:
  191. //     This member function retrieves a pager control's IDropTarget interface
  192. //     pointer.
  193. // Parameters:
  194. //     ppdt - Address of an IDropTarget pointer that receives the interface
  195. //            pointer. It is the caller's responsibility to call Release on this
  196. //            pointer when it is no longer needed.
  197. //-----------------------------------------------------------------------
  198. void GetDropTarget(IDropTarget** ppdt);
  199. protected:
  200. //{{AFX_CODEJOCK_PRIVATE
  201. DECLARE_MESSAGE_MAP()
  202. //{{AFX_VIRTUAL(CXTPagerCtrl)
  203. //}}AFX_VIRTUAL
  204. //{{AFX_MSG(CXTPagerCtrl)
  205. //}}AFX_MSG
  206. //}}AFX_CODEJOCK_PRIVATE
  207. private:
  208. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  209. };
  210. //////////////////////////////////////////////////////////////////////
  211. AFX_INLINE void CXTPagerCtrl::SetChild(HWND hwndChild) {
  212. ASSERT(::IsWindow(m_hWnd)); Pager_SetChild(m_hWnd, hwndChild);
  213. }
  214. AFX_INLINE void CXTPagerCtrl::RecalcSize() {
  215. ASSERT(::IsWindow(m_hWnd)); Pager_RecalcSize(m_hWnd);
  216. }
  217. AFX_INLINE void CXTPagerCtrl::ForwardMouse(BOOL bForward) {
  218. ASSERT(::IsWindow(m_hWnd)); Pager_ForwardMouse(m_hWnd, bForward);
  219. }
  220. AFX_INLINE COLORREF CXTPagerCtrl::SetBkColor(COLORREF clr) {
  221. ASSERT(::IsWindow(m_hWnd)); return Pager_SetBkColor(m_hWnd, clr);
  222. }
  223. AFX_INLINE COLORREF CXTPagerCtrl::GetBkColor() {
  224. ASSERT(::IsWindow(m_hWnd)); return Pager_GetBkColor(m_hWnd);
  225. }
  226. AFX_INLINE int CXTPagerCtrl::SetBorder(int iBorder) {
  227. ASSERT(::IsWindow(m_hWnd)); return Pager_SetBorder(m_hWnd, iBorder);
  228. }
  229. AFX_INLINE int CXTPagerCtrl::GetBorder() {
  230. ASSERT(::IsWindow(m_hWnd)); return Pager_GetBorder(m_hWnd);
  231. }
  232. AFX_INLINE void CXTPagerCtrl::SetPos(int iPos) {
  233. ASSERT(::IsWindow(m_hWnd)); Pager_SetPos(m_hWnd, iPos);
  234. }
  235. AFX_INLINE int CXTPagerCtrl::GetPos() {
  236. ASSERT(::IsWindow(m_hWnd)); return Pager_GetPos(m_hWnd);
  237. }
  238. AFX_INLINE int CXTPagerCtrl::SetButtonSize(int iSize) {
  239. ASSERT(::IsWindow(m_hWnd)); return Pager_SetButtonSize(m_hWnd, iSize);
  240. }
  241. AFX_INLINE int CXTPagerCtrl::GetButtonSize() {
  242. ASSERT(::IsWindow(m_hWnd)); return Pager_GetButtonSize(m_hWnd);
  243. }
  244. AFX_INLINE DWORD CXTPagerCtrl::GetButtonState(int iButton) {
  245. ASSERT(::IsWindow(m_hWnd)); return Pager_GetButtonState(m_hWnd, iButton);
  246. }
  247. AFX_INLINE void CXTPagerCtrl::GetDropTarget(IDropTarget** ppdt) {
  248. ASSERT(::IsWindow(m_hWnd)); Pager_GetDropTarget(m_hWnd, ppdt);
  249. }
  250. AFX_INLINE BOOL CXTPagerCtrl::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  251. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  252. }
  253. #endif // #if !defined(__XTPAGERCTRL_H__)