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. // Download by http://www.codefans.net
  13. //------------------------------------------------------设计人:牛文平
  14. #if !defined(AFX_MyButton_H__5254170E_59CF_11D1_ABBA_00A0243D1382__INCLUDED_)
  15. #define AFX_MyButton_H__5254170E_59CF_11D1_ABBA_00A0243D1382__INCLUDED_
  16. #if _MSC_VER >= 1000
  17. #pragma once
  18. #endif // _MSC_VER >= 1000
  19. class CMyButton : public CButton
  20. {
  21. // Construction
  22. public:
  23. CMyButton();
  24. // Overrides
  25. // ClassWizard generated virtual function overrides
  26. //{{AFX_VIRTUAL(CMyButton)
  27. public:
  28. virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  29. protected:
  30. virtual void PreSubclassWindow();
  31. //}}AFX_VIRTUAL
  32. // Download by http://www.codefans.net
  33. // Implementation
  34. public:
  35. virtual ~CMyButton();
  36. //形状的设置数组
  37. CRgn   m_rgn;
  38. //效果色1
  39. COLORREF m_clrLeft;
  40. //效果色2
  41. COLORREF m_clrRight;
  42. //文本色
  43. COLORREF m_clrText;
  44. //背景色
  45. COLORREF m_clrBack;
  46. //设置为Flat时的背景色
  47. COLORREF m_clrFlatBack;
  48. //显示方式
  49. //文本 0 图形 1 ;
  50. int intStyle;
  51. //对齐方式
  52. //文字在右 0  文字在下1 文字在上2 文字在左 3
  53. int intAlgin;
  54. //鼠标是否是按下状态
  55. BOOL m_blnMouseOn;
  56. //设置按钮样式
  57. //0-方形 1-方圆 2-椭圆
  58. int intButtonFace;
  59. //图标
  60. HICON Xicon;
  61. //图标的高度
  62. DWORD dwIconHeight;
  63. //图标的宽度
  64. DWORD dwIconWidth;
  65. //设置背景色
  66. void SetBackColor(COLORREF color);
  67. //设置文本色
  68. void SetTextColor(COLORREF color);
  69. //设置效果色
  70. void SetMaskColor(COLORREF colLeft,COLORREF colRight);
  71. //设置设置为Flat时的背景色
  72. void SetFlatBack(COLORREF colFlat);
  73. //鼠标离开按钮时触发
  74. LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);
  75. LRESULT OnSetStyle(WPARAM wParam, LPARAM lParam);
  76. //设置图标
  77. void SetXIcon(UINT nIDResource);
  78. //显示方式
  79. //文字在右 0  文字在下1 文字在上2 文字在左 3
  80. void SetXAlign(int Align);
  81. //图像列表
  82. CImageList m_imgList;
  83. //图像大小
  84. CSize m_imgSize;
  85. //文本 0 图形 1;
  86. void SetXStyle(int Style);
  87. //设置背景
  88. void SetBackImage(UINT nIDResource);
  89. //设置按钮样式
  90. void SetButtonFace(int intStyle);
  91. //设置图像按钮
  92. void SetForeImage(UINT nIDResource,CSize sz);
  93. // Generated message map functions
  94. protected:
  95. //{{AFX_MSG(CMyButton)
  96. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  97. afx_msg UINT OnGetDlgCode();
  98. afx_msg void OnSysColorChange();
  99. afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
  100. //}}AFX_MSG
  101. DECLARE_MESSAGE_MAP()
  102. private:
  103. //画图标
  104. void DrawIconX(CDC *pDC,CRect rcItem);
  105. //销毁图标,释放内存
  106. void DestroyXIcon();
  107. //得到图标的信息
  108. void GetXiconInf();
  109. void DrawImgX(CDC *pDC,CRect rcItem);
  110. //背景画刷
  111. CBrush m_BackBrush;
  112. BOOL m_bIsDefault;
  113. UINT m_nTypeStyle;
  114. };
  115. /////////////////////////////////////////////////////////////////////////////
  116. //{{AFX_INSERT_LOCATION}}
  117. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  118. #endif // !defined(AFX_MyButton_H__5254170E_59CF_11D1_ABBA_00A0243D1382__INCLUDED_)