⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yctbitmapbutton2.h

📁 简易的日期控件
💻 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 + -