yctbitmapbutton.h
来自「简易的日期控件」· C头文件 代码 · 共 113 行
H
113 行
#if !defined(AFX_YCTBITMAPBUTTON_H__8CFCBD64_FEC1_40B9_A047_4B47F880BD42__INCLUDED_)
#define AFX_YCTBITMAPBUTTON_H__8CFCBD64_FEC1_40B9_A047_4B47F880BD42__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// yctBitmapButton.h : header file
//
///////////////////////////////////////////////////////////
//注意:
//必须在#include <afxwin.h>前,加一行代码#define _WIN32_WINNT 0x0400
//因为函数TrackMouseEvent需要它
//
//此button的表现:
// 有三种图片状态
// _mouse_in //鼠标在button内
// _mouse_out //鼠标在button外
// _mouse_down //鼠标在button内并且左键正在按下
///////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CyctBitmapButton window
class CyctBitmapButton : public CButton
{
private:
enum
{
//button的三种状态
_mouse_in=1, //鼠标在button内
_mouse_out, //鼠标在button外
_mouse_down//鼠标在button内并且左键正在按下
};
class tagInfo
{
//存储状态信息
private:
int m_CurState;//当前的状态
public:
void SetCurState(const int&Cur)
{
//设置当前状态
ASSERT(Cur == _mouse_in
|| Cur == _mouse_out
|| Cur == _mouse_down);
m_CurState = Cur;
}
int GetCurState() const
{
//设置当前状态
ASSERT(m_CurState == _mouse_in
|| m_CurState == _mouse_out
|| m_CurState == _mouse_down);
return m_CurState;
}
}m_MouseState;
friend class tagInfo;
// Construction
public:
CyctBitmapButton();
// Attributes
private:
BOOL m_fIsInit;//初始化标志,为TRUE表示已经初始化。
HBITMAP m_hIn, m_hOut, m_hDown;//Bitmap句柄
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CyctBitmapButton)
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
// Implementation
private:
int Init();//初始化
HBITMAP SetBitmap(HBITMAP hBitmap);//设置按钮的位图
public:
virtual ~CyctBitmapButton();
// Generated message map functions
protected:
//{{AFX_MSG(CyctBitmapButton)
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnDestroy();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSetFocus(CWnd* pOldWnd);
//}}AFX_MSG
afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);//手工添加
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_YCTBITMAPBUTTON_H__8CFCBD64_FEC1_40B9_A047_4B47F880BD42__INCLUDED_)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?