BMPButton.h
上传用户:xiaoke98
上传日期:2014-06-29
资源大小:5718k
文件大小:2k
源码类别:

家庭/个人应用

开发平台:

Visual C++

  1. #if !defined(AFX_BMPBUTTON_H__CA9A4CB0_6CA0_48D2_8BC0_1493C5CCDE8F__INCLUDED_)
  2. #define AFX_BMPBUTTON_H__CA9A4CB0_6CA0_48D2_8BC0_1493C5CCDE8F__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // BMPButton.h : header file
  7. //
  8. #include "winuser.h"
  9. //用于跟踪鼠标的状态
  10. extern "C" WINUSERAPI BOOL WINAPI TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack);
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CBMPButton window
  13. #define BS_TYPEMASK SS_TYPEMASK
  14. class CBMPButton : public CButton
  15. {
  16. // Construction
  17. public:
  18. CBMPButton();
  19. // Attributes
  20. public:
  21. BOOL setBmpFile(CString& strFileName);
  22. BOOL setBmpData(char* pData, int iDataLen);
  23. BOOL    OpenBmpFile(void);
  24. void    Display(void);
  25. void setColor(COLORREF color);
  26. void setOffset(int iLeftTop, int iRightBottom);
  27. CString getImagePath(void);
  28. void    getData(char* pBuffer, int& iDataLen);
  29. void    ClearBmp(void);
  30. // Operations
  31. public:
  32. // Overrides
  33. // ClassWizard generated virtual function overrides
  34. //{{AFX_VIRTUAL(CBMPButton)
  35. //}}AFX_VIRTUAL
  36. virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  37. protected:
  38. virtual void PreSubclassWindow();
  39. // Implementation
  40. public:
  41. virtual ~CBMPButton();
  42. // Generated message map functions
  43. protected:
  44. //{{AFX_MSG(CBMPButton)
  45. // NOTE - the ClassWizard will add and remove member functions here.
  46. //}}AFX_MSG
  47. afx_msg BOOL OnEraseBkgnd( CDC* pDC );
  48. afx_msg void OnPaint();
  49. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  50. afx_msg void OnMouseOut();
  51. DECLARE_MESSAGE_MAP()
  52. private:
  53. CString m_strImagePath; 
  54. char* m_pBuffer;
  55. int m_iBufferLen;
  56. int m_iWidth;
  57. int m_iHeight;
  58. HBITMAP m_hBitmap;
  59. UINT m_nTypeStyle; // Button style
  60. COLORREF m_color;
  61. int m_iLeftTopOffset;
  62. int m_iRightBottomOffset;
  63. HBITMAP BufferToHBITMAP();
  64. BOOL MouseOver();
  65. BOOL m_bOver;
  66. BOOL m_bFirst;
  67. };
  68. /////////////////////////////////////////////////////////////////////////////
  69. //{{AFX_INSERT_LOCATION}}
  70. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  71. #endif // !defined(AFX_BMPBUTTON_H__CA9A4CB0_6CA0_48D2_8BC0_1493C5CCDE8F__INCLUDED_)