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

界面编程

开发平台:

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_LABEL_H)
  22. #define __EXT_LABEL_H
  23. #if _MSC_VER > 1000
  24. #pragma once
  25. #endif // _MSC_VER > 1000
  26. #if (!defined __EXT_MFC_DEF_H)
  27. #include <ExtMfcDef.h>
  28. #endif // __EXT_MFC_DEF_H
  29. #if (!defined __EXT_CMD_ICON_H)
  30. #include <ExtCmdIcon.h>
  31. #endif
  32. class CExtPopupMenuTipWnd;
  33. /////////////////////////////////////////////////////////////////////////////
  34. // CExtLabel window
  35. class __PROF_UIS_API CExtLabel
  36. : public CStatic
  37. , public CExtPmBridge
  38. {
  39. public:
  40. DECLARE_DYNCREATE( CExtLabel );
  41. DECLARE_CExtPmBridge_MEMBERS( CExtLabel );
  42. CExtLabel();
  43. // Attributes
  44. public:
  45. CRect m_rcLabelTextMargins;
  46. // Operations
  47. public:
  48. void SetFontBold( bool bSet = true );
  49. void SetFontItalic( bool bSet = true );
  50. void SetFontUnderline( bool bSet = true );
  51. void SetFontStrikeOut( bool bSet = true );
  52. void SetBkColor( COLORREF clrBk );
  53. void SetTextColor(
  54. bool bEnabled,
  55. COLORREF clrText = COLORREF(-1L)
  56. );
  57. bool GetFontBold();
  58. bool GetFontItalic();
  59. bool GetFontUnderline();
  60. bool GetFontStrikeOut();
  61. COLORREF GetBkColor() const;
  62. COLORREF GetTextColor(
  63. bool bEnabled
  64. ) const;
  65. enum e_ImageMode_t
  66. {
  67. eAlign = 0, // The image is aligned according to the text aligning styles (the SS_LEFT, SS_CENTER and SS_RIGHT styles)
  68. eTile = 1, // The image is repeated until the entire available area is filled. 
  69. eStretch = 2, // The image is stretched to fit all the available area. 
  70. eTouchInside = 3, // Stretch the image proportionally and touch inside.
  71. eTouchOutside = 4, // Stretch the image proportionally and touch outside.
  72. };
  73. e_ImageMode_t SetImageMode(
  74. e_ImageMode_t eImageMode
  75. );
  76. e_ImageMode_t GetImageMode() const;
  77. const CExtBitmap * GetBitmapEx() const;
  78. CExtBitmap * GetBitmapEx();
  79. bool SetBitmapEx( 
  80. CExtBitmap * pBmp 
  81. );
  82. void SetTooltipText( int nId );
  83. void SetTooltipText( __EXT_MFC_SAFE_LPCTSTR sText );
  84. INT m_nAdvancedTipStyle; // CExtPopupMenuTipWnd::__ETS_RECTANGLE_NO_ICON
  85. bool m_bHelper_AutoAdjust_SS_NOTIFY_style:1;
  86. static bool g_bHelper_AutoAdjust_SS_NOTIFY_style;
  87. protected:
  88. CExtSafeString m_strToolTipText;
  89. virtual CExtPopupMenuTipWnd * OnAdvancedPopupMenuTipWndGet() const;
  90. virtual void OnAdvancedPopupMenuTipWndDisplay(
  91. CExtPopupMenuTipWnd & _ATTW,
  92. const RECT & rcExcludeArea
  93. ) const;
  94. // Overrides
  95. // ClassWizard generated virtual function overrides
  96. //{{AFX_VIRTUAL(CExtLabel)
  97. protected:
  98. virtual void PreSubclassWindow();
  99. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  100. //}}AFX_VIRTUAL
  101. // Implementation
  102. public:
  103. virtual ~CExtLabel();
  104. virtual void OnEraseBackground(
  105. CDC & dc,
  106. const CRect & rcClient
  107. );
  108. virtual void OnDrawLabelText(
  109. CDC & dc,
  110. const RECT & rcText,
  111. __EXT_MFC_SAFE_LPCTSTR strText,
  112. DWORD dwDrawTextFlags,
  113. bool bEnabled
  114. );
  115. virtual COLORREF OnQueryTextColor(
  116. bool bEnabled
  117. ) const;
  118. protected:
  119. bool m_bFontBold:1;
  120. bool m_bFontItalic:1;
  121. bool m_bFontUnderline:1;
  122. bool m_bFontStrikeOut:1;
  123. COLORREF m_clrTextNormal, m_clrTextDisabled;
  124. COLORREF m_clrBackground;
  125. CExtSafeString m_sText;
  126. bool m_bInitText:1;
  127. CExtBitmap m_bmp;
  128. e_ImageMode_t m_eImageMode;
  129. virtual HFONT OnQueryFont() const;
  130. virtual void DoPaint( 
  131. CDC * pDC,
  132. CRect & rcClient
  133. );
  134. // Generated message map functions
  135. protected:
  136. //{{AFX_MSG(CExtLabel)
  137. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  138. afx_msg void OnPaint();
  139. //}}AFX_MSG
  140. DECLARE_MESSAGE_MAP()
  141. }; // class CExtLabel
  142. /////////////////////////////////////////////////////////////////////////////
  143. //{{AFX_INSERT_LOCATION}}
  144. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  145. #endif // (!defined __EXT_LABEL_H)