📄 buttonex.cpp
字号:
#include "StdAfx.h"
#include "ButtonEx.h"
CButtonEx::CButtonEx(void)
{
m_state = EBTN_NORMAL;
}
CButtonEx::~CButtonEx(void)
{
}
void CButtonEx::Create(const TCHAR* pFile)
{
m_pImage = Image::FromFile(pFile);
m_rect.left = 0;
m_rect.top = 0;
m_rect.right= m_pImage->GetWidth()/4;
m_rect.bottom = m_pImage->GetHeight();
}
void CButtonEx::Move(int x,int y)
{
m_rect.left += x;
m_rect.right += x;
m_rect.top += y;
m_rect.bottom += y;
}
bool CButtonEx::MouseIn(POINT& pt)
{
if (::PtInRect(&m_rect,pt))
{
return true;
}
return false;
}
bool CButtonEx::OnLButtonDown(const EventArgs& arg)
{
m_state = EBNT_LBUTTONDOWN;
map<BTN_EVENT,FunHolder*>::iterator itr = m_mpEvent.find(EBNT_LBUTTONDOWN);
if (itr != m_mpEvent.end())
{
return (*itr->second)(arg);
}
return true;
}
bool CButtonEx::OnMouseMove(const EventArgs& arg)
{
m_state = EBNT_MOUSEMOVE;
map<BTN_EVENT,FunHolder*>::iterator itr = m_mpEvent.find(EBNT_MOUSEMOVE);
if (itr != m_mpEvent.end())
{
return (*itr->second)(arg);
}
return true;
}
bool CButtonEx::OnRButtonDown(const EventArgs& arg)
{
m_state = EBTN_RBUTTONDOWN;
map<BTN_EVENT,FunHolder*>::iterator itr = m_mpEvent.find(EBTN_RBUTTONDOWN);
if (itr != m_mpEvent.end())
{
return (*itr->second)(arg);
}
return true;
}
bool CButtonEx::OnMouseLeave(const EventArgs& arg)
{
m_state = EBTN_NORMAL;
return true;
}
void CButtonEx::Draw(Graphics& grp)
{
grp.DrawImage(m_pImage,
m_rect.left,
m_rect.top,
m_pImage->GetWidth()/4 * m_state,
0,
m_pImage->GetWidth()/4,
m_pImage->GetHeight(),
UnitPixel);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -