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

对话框与窗口

开发平台:

Visual C++

  1. // XTPPropertyPage.h : interface for the CXTPPropertyPage 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(__XTPPROPERTYPAGE_H__)
  22. #define __XTPPROPERTYPAGE_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "XTResizeRect.h"
  28. #include "XTResizePoint.h"
  29. #include "XTResize.h"
  30. //===========================================================================
  31. // Summary:
  32. //     CXTPPropertyPage is a CPropertyPage derived class
  33. //     Objects of class CPropertyPage represent individual pages of a property sheet
  34. // See Also:
  35. //     CXTPPropertySheet, CXTPPropertySheet::DoModal, CXTPPropertyPageNavigator
  36. //===========================================================================
  37. class _XTP_EXT_CLASS CXTPPropertyPage : public CPropertyPage, public CXTResize
  38. {
  39. DECLARE_DYNCREATE(CXTPPropertyPage)
  40. public:
  41. //-----------------------------------------------------------------------
  42. // Summary:
  43. //     Constructs a CXTPPropertyPage object.
  44. // Parameters:
  45. //     nIDTemplate - ID of the template used for this page.
  46. //     lpszTemplateName - Points to a string containing the name of the template for this page. Cannot be NULL
  47. //     nIDCaption - ID of the name to be placed in the tab for this page. If 0, the name will be taken from the dialog template for this page
  48. // Remarks:
  49. //     Use this member function to construct a CXTPPropertyPage object.
  50. //     To display the property sheet, call DoModal or Create.
  51. //     The string contained in the first parameter will be placed in the caption bar for the property sheet.
  52. //-----------------------------------------------------------------------
  53. CXTPPropertyPage();
  54. CXTPPropertyPage(UINT nIDTemplate, UINT nIDCaption = 0); // <combine CXTPPropertyPage::CXTPPropertyPage>
  55. CXTPPropertyPage(LPCTSTR lpszTemplateName, UINT nIDCaption = 0); // <combine CXTPPropertyPage::CXTPPropertyPage>
  56. //-----------------------------------------------------------------------
  57. // Summary:
  58. //     Destroys a CXTPPropertyPage object, handles cleanup and deallocation
  59. //-----------------------------------------------------------------------
  60. ~CXTPPropertyPage();
  61. public:
  62. //-----------------------------------------------------------------------
  63. // Summary:
  64. //     Returns caption text used for property sheet tabs
  65. //-----------------------------------------------------------------------
  66. CString GetCaption() const;
  67. //-----------------------------------------------------------------------
  68. // Summary:
  69. //     Sets caption text used to draw property sheet tabs
  70. // Parameters:
  71. //     lpszCaption - New caption to be set
  72. //-----------------------------------------------------------------------
  73. void SetCaption(LPCTSTR lpszCaption);
  74. //{{AFX_CODEJOCK_PRIVATE
  75. public:
  76. void EndDialog(int nID);
  77. protected:
  78. virtual BOOL CreatePage(CWnd* pParentWnd);
  79. void CommonConstruct();
  80. void UpdateBars();
  81. BOOL GetTrueClientSize(CSize& size, CSize& sizeSb);
  82. void GetScrollBarSizes(CSize& sizeSb);
  83. void GetScrollBarState(CSize sizeClient, CSize& needSb,
  84. CSize& sizeRange, CPoint& ptMove, BOOL bInsideClient);
  85. CPoint GetDeviceScrollPosition() const;
  86. void ScrollToDevicePosition(POINT ptDev);
  87. BOOL OnScroll(UINT nScrollCode, UINT nPos, BOOL bDoScroll = TRUE);
  88. BOOL DoMouseWheel(UINT fFlags, short zDelta, CPoint point);
  89. BOOL OnScrollBy(CSize sizeScroll, BOOL bDoScroll);
  90. virtual void AjustResizeRect(CSize& rcWindow);
  91. void ScrollPage(int xAmount, int yAmount);
  92. void OnChildSetFocus(HWND hWndFocus);
  93. //}}AFX_CODEJOCK_PRIVATE
  94. protected:
  95. //{{AFX_CODEJOCK_PRIVATE
  96. DECLARE_MESSAGE_MAP()
  97. //{{AFX_VIRTUAL(CXTPPropertyPage)
  98. protected:
  99. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  100. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  101. virtual BOOL OnInitDialog();
  102. //}}AFX_VIRTUAL
  103. //{{AFX_MSG(CXTPPropertyPage)
  104. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  105. afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
  106. afx_msg void OnSize(UINT nType, int cx, int cy);
  107. afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  108. afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
  109. afx_msg BOOL OnMouseWheel(UINT fFlags, short zDelta, CPoint point);
  110. afx_msg void OnNcPaint();
  111. afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp);
  112. //}}AFX_MSG
  113. //}}AFX_CODEJOCK_PRIVATE
  114. friend class CXTPPropertySheet;
  115. public:
  116. DWORD_PTR m_dwData; // Page specific 32-bit value
  117. protected:
  118. CXTPPropertySheet* m_pSheet;    // Parent CXTPPropertySheet object
  119. BOOL m_bModified;               // TRUE to indicate that the property page settings have been modified
  120. BOOL m_bInsideUpdate;
  121. CSize m_totalDev;
  122. CSize m_lineDev;
  123. };
  124. //{{AFX_CODEJOCK_PRIVATE
  125. class _XTP_EXT_CLASS CXTPPropertyPageStaticCaption : public CWnd
  126. {
  127. public:
  128. CXTPPropertyPageStaticCaption();
  129. public:
  130. DECLARE_MESSAGE_MAP()
  131. afx_msg void OnPaint();
  132. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  133. };
  134. //}}AFX_CODEJOCK_PRIVATE
  135. #endif // !defined(__XTPPROPERTYPAGE_H__)