ExtGroupBox.h
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:4k
源码类别:

界面编程

开发平台:

Visual C++

  1. // This is part of the Professional User Interface Suite library.
  2. // Copyright (C) 2001-2009 FOSS Software, Inc.
  3. // All rights reserved.
  4. //
  5. // http://www.prof-uis.com
  6. // mailto:support@prof-uis.com
  7. //
  8. // This source code can be used, modified and redistributed
  9. // under the terms of the license agreement that is included
  10. // in the Professional User Interface Suite package.
  11. //
  12. // Warranties and Disclaimers:
  13. // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
  14. // INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY,
  15. // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
  16. // IN NO EVENT WILL FOSS SOFTWARE INC. BE LIABLE FOR ANY DIRECT,
  17. // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES,
  18. // INCLUDING DAMAGES FOR LOSS OF PROFITS, LOSS OR INACCURACY OF DATA,
  19. // INCURRED BY ANY PERSON FROM SUCH PERSON'S USAGE OF THIS SOFTWARE
  20. // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  21. #if (!defined __EXT_GROUPBOX_H)
  22. #define __EXT_GROUPBOX_H
  23. #if (!defined __EXT_MFC_DEF_H)
  24. #include <ExtMfcDef.h>
  25. #endif // __EXT_MFC_DEF_H
  26. #if _MSC_VER > 1000
  27. #pragma once
  28. #endif // _MSC_VER > 1000
  29. /////////////////////////////////////////////////////////////////////////////
  30. // CExtGroupBox window
  31. class __PROF_UIS_API CExtGroupBox
  32. : public CButton
  33. , public CExtPmBridge
  34. {
  35. // Construction
  36. public:
  37. DECLARE_DYNAMIC( CExtGroupBox );
  38. DECLARE_CExtPmBridge_MEMBERS( CExtGroupBox );
  39. CExtGroupBox();
  40. // Attributes
  41. public:
  42. // Operations
  43. public:
  44. enum e_style_t
  45. {
  46. STYLE_SYSTEM = 0,
  47. STYLE_ETCHED = 1,
  48. STYLE_ROUNDED = 2,
  49. STYLE_FLAT = 3,
  50. STYLE_CAPTION = 4,
  51. };
  52. enum e_text_align_t
  53. {
  54. ALIGN_DEFAULT = 0,
  55. ALIGN_LEFT = 1,
  56. ALIGN_RIGHT = 2,
  57. ALIGN_CENTER = 3,
  58. };
  59. void SetStyle( e_style_t eStyle );
  60. e_style_t GetStyle() const;
  61. void SetTextAlign( e_text_align_t eTextAlign );
  62. e_text_align_t GetTextAlign() const;
  63. void SetCaptionHeaderHeight( int nHeight );
  64. int GetCaptionHeaderHeight() const;
  65. void SetBkColor( 
  66. COLORREF clrBk 
  67. );
  68. COLORREF GetBkColor() const;
  69. void SetTextColor(
  70. COLORREF clrText = COLORREF(-1L),
  71. bool bEnabled = true
  72. );
  73. COLORREF GetTextColor(
  74. bool bEnabled = true
  75. ) const;
  76. void SetFrameColor(
  77. COLORREF clrFrame = COLORREF(-1L),
  78. bool bEnabled = true
  79. );
  80. COLORREF GetFrameColor(
  81. bool bEnabled = true
  82. ) const;
  83. // Overrides
  84. // ClassWizard generated virtual function overrides
  85. //{{AFX_VIRTUAL(CExtGroupBox)
  86. protected:
  87. virtual void PreSubclassWindow();
  88. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  89. //}}AFX_VIRTUAL
  90. // Implementation
  91. public:
  92. virtual ~CExtGroupBox();
  93. protected:
  94. e_text_align_t m_eTextAlign;
  95. e_style_t m_eStyle;
  96. int m_nCaptionHeaderHeight;
  97. COLORREF m_clrBackground;
  98. COLORREF m_clrTextNormal;
  99. COLORREF m_clrTextDisabled;
  100. COLORREF m_clrFrameNormal;
  101. COLORREF m_clrFrameDisabled;
  102. virtual void DoPaint( 
  103. CDC * pDC,
  104. CRect & rcClient
  105. );
  106. virtual HFONT OnQueryFont() const;
  107. virtual void OnDrawLabelText(
  108. CDC & dc,
  109. CRect& rcText,
  110. __EXT_MFC_SAFE_LPCTSTR strText,
  111. DWORD dwDrawTextFlags,
  112. bool bEnabled
  113. );
  114. virtual void OnDrawFrameRect(
  115. CDC & dc,
  116. const CRect & rcClient,
  117. bool bEnabled
  118. );
  119. virtual COLORREF OnQueryTextColor(
  120. bool bEnabled
  121. ) const;
  122. virtual COLORREF OnQueryFrameColor(
  123. bool bEnabled
  124. ) const;
  125. // Generated message map functions
  126. protected:
  127. //{{AFX_MSG(CExtGroupBox)
  128. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  129. afx_msg void OnPaint();
  130. //}}AFX_MSG
  131. DECLARE_MESSAGE_MAP()
  132. }; // class CExtGroupBox
  133. /////////////////////////////////////////////////////////////////////////////
  134. //{{AFX_INSERT_LOCATION}}
  135. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  136. #endif // __EXT_GROUPBOX_H