📄 yctbitmapbutton2.h
字号:
#if !defined(AFX_YCTBITMAPBUTTON2_H__F404A0A7_9A20_4F59_877B_0C67FCDA8FD5__INCLUDED_)
#define AFX_YCTBITMAPBUTTON2_H__F404A0A7_9A20_4F59_877B_0C67FCDA8FD5__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// yctBitmapButton2.h : header file
///////////////////////////////////////////////////////////
//注意:
//必须在#include <afxwin.h>前,加一行代码#define _WIN32_WINNT 0x0400
//因为函数TrackMouseEvent需要它
//
//此button的表现:
//有六种图片状态:
// 没有获得焦点三种:
// _mouse_in //鼠标在button内
// _mouse_out //鼠标在button外
// _mouse_down //鼠标在button内并且左键正在按下
// 获得焦点三种:
// _mouse_in_focus //鼠标在button内
// _mouse_out_focus //鼠标在button外
// _mouse_down_focus //鼠标在button内并且左键正在按下
///////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CyctBitmapButton2 window
class CyctBitmapButton2 : public CButton
{
private:
enum
{
//button的六种状态
//没有获得焦点三种:
_mouse_in=1, //鼠标在button内
_mouse_out, //鼠标在button外
_mouse_down, //鼠标在button内并且左键正在按下
//获得焦点三种:
_mouse_in_focus, //鼠标在button内
_mouse_out_focus,//鼠标在button外
_mouse_down_focus //鼠标在button内并且左键正在按下
};
class tagInfo
{
//存储状态信息
private:
int m_CurState;//当前的状态
public:
void SetCurState(const int&Cur)
{
//设置当前状态
ASSERT(Cur == _mouse_in
|| Cur == _mouse_out
|| Cur == _mouse_down
|| Cur == _mouse_in_focus
|| Cur == _mouse_out_focus
|| Cur == _mouse_down_focus);
m_CurState = Cur;
}
int GetCurState() const
{
//设置当前状态
ASSERT(m_CurState == _mouse_in
|| m_CurState == _mouse_out
|| m_CurState == _mouse_down
|| m_CurState == _mouse_in_focus
|| m_CurState == _mouse_out_focus
|| m_CurState == _mouse_down_focus);
return m_CurState;
}
}m_MouseState;
friend class tagInfo;
// Construction
public:
CyctBitmapButton2();
// Attributes
private:
BOOL m_fIsInit;//初始化标志,为TRUE表示已经初始化。
HBITMAP m_hIn, m_hOut, m_hDown, m_hIn_Focus, m_hOut_Focus, m_hDown_Focus;//Bitmap句柄
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CyctBitmapButton2)
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
// Implementation
private:
int Init();//初始化
HBITMAP SetBitmap(HBITMAP hBitmap);//设置按钮的位图
public:
virtual ~CyctBitmapButton2();
// Generated message map functions
protected:
//{{AFX_MSG(CyctBitmapButton2)
afx_msg void OnDestroy();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
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 OnSetFocus(CWnd* pOldWnd);
afx_msg void OnKillFocus(CWnd* pNewWnd);
//}}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_YCTBITMAPBUTTON2_H__F404A0A7_9A20_4F59_877B_0C67FCDA8FD5__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -