ShadowButton.h
上传用户:cxh888fhc
上传日期:2017-07-08
资源大小:240k
文件大小:3k
源码类别:

钩子与API截获

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////////
  2. // 类名: CShadowButton
  3. //
  4. // 说明: 类似于原DOS下的阴影效果按钮
  5. //
  6. // 用法:
  7. //       1、把文件shadowbutton.h、shadowbutton.cpp加入工程中
  8. //       2、在使用的对话框中加入头文件,#include shadowbutton.h
  9. //       3、声明要改变的按钮成员变量(可在类向导中进行),如:
  10. //           CShadowButton m_Cancel;
  11. //       4、在OnInitDialog()中加入下面语句,进行初始化
  12. //           m_Cancel.SetDefaultFace();
  13. //           m_Cancel.SetDefaultButton();
  14. //
  15. // 修改: 徐景周, 加入PreSubclassWindow(),实现按钮构造时自绘属性.
  16. /////////////////////////////////////////////////////////////////////
  17. #if !defined(AFX_SHADOWBUTTON_H__F2E1D200_7147_11D5_98C1_8B96D28F4E0A__INCLUDED_)
  18. #define AFX_SHADOWBUTTON_H__F2E1D200_7147_11D5_98C1_8B96D28F4E0A__INCLUDED_
  19. #if _MSC_VER > 1000
  20. #pragma once
  21. #endif // _MSC_VER > 1000
  22. // shadowbutton.h : header file
  23. /////////////////////////////////////////////////////////////////////////////
  24. // CShadowButton window
  25. class CShadowButton : public CButton
  26. {
  27. // Construction
  28. public:
  29. CShadowButton();
  30. // Attributes
  31. public:
  32. // Operations
  33. public:
  34. void SetShadowSize(CSize cs)
  35. {
  36. m_sizeShadow.cx = cs.cx;
  37. m_sizeShadow.cy = cs.cy;
  38. Redraw();
  39. }
  40. protected:
  41. BOOL m_bDefault;
  42. COLORREF m_crBorderColor;
  43. COLORREF m_crColor;
  44. COLORREF m_crShadowColor;
  45. COLORREF m_crTextColor;
  46. COLORREF m_crTransColor;
  47. CSize m_sizeShadow;
  48. int m_nBorderSize;
  49. int m_nShadowXOffset;
  50. int m_nShadowYOffset;
  51. CBitmap m_bmpNormal;
  52. CBitmap m_bmpDisabled;
  53. // Overrides
  54. // ClassWizard generated virtual function overrides
  55. //{{AFX_VIRTUAL(CShadowButton)
  56. public:
  57. virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  58. protected:
  59. virtual void PreSubclassWindow();
  60. //}}AFX_VIRTUAL
  61. // Implementation
  62. public:
  63. void SetDefaultFace();
  64. BOOL SetDefaultButton( BOOL bState = TRUE );
  65. void SetShadowOffset(int x, int y);
  66. BOOL LoadBitmaps(COLORREF crTransColor, UINT nresNormalBmp, UINT nresDisabledBmp = 0);
  67. void SetColors(COLORREF crColor, COLORREF crBorder, COLORREF crShadow, COLORREF crText);
  68. void SetBorderSize(int nSize);
  69. void Redraw();
  70. virtual ~CShadowButton();
  71. // Generated message map functions
  72. protected:
  73. void DrawClient(CDC *pdc, CRect *pRect, int x, int y);
  74. void DrawDown(CDC *pDC, CRect *pRect);
  75. void DrawUp(CDC *pDC, CRect *pRect);
  76. //{{AFX_MSG(CShadowButton)
  77. //}}AFX_MSG
  78. DECLARE_MESSAGE_MAP()
  79. };
  80. /////////////////////////////////////////////////////////////////////////////
  81. //{{AFX_INSERT_LOCATION}}
  82. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  83. #endif // !defined(AFX_SHADOWBUTTON_H__F2E1D200_7147_11D5_98C1_8B96D28F4E0A__INCLUDED_)