MyButton.h
上传用户:jzscgs158
上传日期:2022-05-25
资源大小:8709k
文件大小:3k
源码类别:

百货/超市行业

开发平台:

Visual C++

  1. //使用说明
  2. //1:设置状态有三种:
  3. // A:正常即缺省状态不用对按钮做任何设置
  4. // B:设置为Disable和Notify为静态的文本
  5. // C:设置为Flat为隐藏形的
  6. //2:设置对齐方式(SetXAlign)
  7. // A:文字在右 0 
  8. // B:文字在下 1
  9. // C:文字在上 2
  10. // D:文字在左 3
  11. //3:设置图标(SetXico)
  12. //------------------------------------------------------设计人:牛文平
  13. #if !defined(AFX_MyButton_H__5254170E_59CF_11D1_ABBA_00A0243D1382__INCLUDED_)
  14. #define AFX_MyButton_H__5254170E_59CF_11D1_ABBA_00A0243D1382__INCLUDED_
  15. #if _MSC_VER >= 1000
  16. #pragma once
  17. #endif // _MSC_VER >= 1000
  18. class CMyButton : public CButton
  19. {
  20. // Construction
  21. public:
  22. CMyButton();
  23. // Overrides
  24. // ClassWizard generated virtual function overrides
  25. //{{AFX_VIRTUAL(CMyButton)
  26. public:
  27. virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  28. protected:
  29. virtual void PreSubclassWindow();
  30. //}}AFX_VIRTUAL
  31. // Implementation
  32. public:
  33. virtual ~CMyButton();
  34. //形状的设置数组
  35. CRgn   m_rgn;
  36. //效果色1
  37. COLORREF m_clrLeft;
  38. //效果色2
  39. COLORREF m_clrRight;
  40. //文本色
  41. COLORREF m_clrText;
  42. //背景色
  43. COLORREF m_clrBack;
  44. //设置为Flat时的背景色
  45. COLORREF m_clrFlatBack;
  46. //显示方式
  47. //文本 0 图形 1 ;
  48. int intStyle;
  49. //对齐方式
  50. //文字在右 0  文字在下1 文字在上2 文字在左 3
  51. int intAlgin;
  52. //鼠标是否是按下状态
  53. BOOL m_blnMouseOn;
  54. //设置按钮样式
  55. //0-方形 1-方圆 2-椭圆
  56. int intButtonFace;
  57. //图标
  58. HICON Xicon;
  59. //图标的高度
  60. DWORD dwIconHeight;
  61. //图标的宽度
  62. DWORD dwIconWidth;
  63. //设置背景色
  64. void SetBackColor(COLORREF color);
  65. //设置文本色
  66. void SetTextColor(COLORREF color);
  67. //设置效果色
  68. void SetMaskColor(COLORREF colLeft,COLORREF colRight);
  69. //设置设置为Flat时的背景色
  70. void SetFlatBack(COLORREF colFlat);
  71. //鼠标离开按钮时触发
  72. LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);
  73. //设置图标
  74. void SetXIcon(UINT nIDResource);
  75. //显示方式
  76. //文字在右 0  文字在下1 文字在上2 文字在左 3
  77. void SetXAlign(int Align);
  78. //文本 0 图形 1;
  79. void SetXStyle(int Style);
  80. //设置背景
  81. void SetBackImage(UINT nIDResource);
  82. //设置按钮样式
  83. void SetButtonFace(int intStyle);
  84. // Generated message map functions
  85. protected:
  86. //{{AFX_MSG(CMyButton)
  87. //}}AFX_MSG
  88. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  89. DECLARE_MESSAGE_MAP()
  90. private:
  91. //画图标
  92. void DrawIconX(CDC *pDC,CRect rcItem);
  93. //销毁图标,释放内存
  94. void DestroyXIcon();
  95. //得到图标的信息
  96. void GetXiconInf();
  97. //背景画刷
  98. CBrush m_BackBrush;
  99. };
  100. /////////////////////////////////////////////////////////////////////////////
  101. //{{AFX_INSERT_LOCATION}}
  102. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  103. #endif // !defined(AFX_MyButton_H__5254170E_59CF_11D1_ABBA_00A0243D1382__INCLUDED_)