📄 pluckbutton.cpp
字号:
// PluckButton.cpp : implementation file
//
#include "stdafx.h"
#include "OwnDrawButton.h"
#include "PluckButton.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPluckButton
CPluckButton::CPluckButton()
{
m_style = KEY_STYLE_DOWN;
b_InRect = false;
a = 0;
}
CPluckButton::~CPluckButton()
{
}
BEGIN_MESSAGE_MAP(CPluckButton, CButton)
//{{AFX_MSG_MAP(CPluckButton)
ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPluckButton message handlers
void CPluckButton::PreSubclassWindow()
{
CButton::PreSubclassWindow();
ModifyStyle( 0, BS_OWNERDRAW ); //设置按钮属性为自画式
}
void CPluckButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
CDC *pDC = CDC::FromHandle( lpDrawItemStruct->hDC );
m_ButRect = lpDrawItemStruct->rcItem; //获取按钮尺寸
CPoint m_ptCentre = m_ButRect.CenterPoint(); //求按钮中心点
VERIFY( pDC );
if(b_InRect)
DownButton(pDC);
else
NormalButton(pDC);
}
//鼠标按下消息函数
void CPluckButton::OnLButtonDown(UINT nFlags, CPoint point)
{
b_InRect=true;
CButton::OnLButtonDown(nFlags, point);
Invalidate();
}
//画正常按钮
void CPluckButton::NormalButton(CDC *pDC)
{
CBrush Brush;
Brush.CreateSolidBrush( RGB(178,189,200) );//灰色
pDC->SelectObject( &Brush );
pDC->Rectangle( &m_ButRect ); //画背景
}
//画鼠标经过时的按钮
void CPluckButton::DownButton(CDC *pDC)
{
CBrush Brush;
CString temp;
temp.Format("%d", a);
// ::MessageBox(0, temp, "debug", MB_OK);
if(a==1)
{
Brush.CreateSolidBrush(RGB(0,0,0));
}
else if (a == 2)
{
Brush.CreateSolidBrush(RGB(255,255,255));
}
else
Brush.CreateSolidBrush(RGB(128, 128, 128));
pDC->SelectObject( &Brush );
pDC->Rectangle( &m_ButRect ); //画背景
}
//////////////////////////////////////////////////////////////////////
//接口函数
//设置按钮风格
void CPluckButton::SetPluckButStyle(int Style)
{
m_style = Style;
}
//获取按钮风格
int CPluckButton::GetPluckButStyle()
{
return m_style;
}
void CPluckButton::setcolor(int a)
{
this->a = a;
DownButton(GetDC());
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -