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

📄 ~transbutton.~cpp

📁 实时监控
💻 ~CPP
字号:
// TransButton.cpp : implementation file
//

#include "stdafx.h"
#include "../dvrmanager.h"
#include "TransButton.h"
#include "click_btn.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTransButton

CTransButton::CTransButton(): def_btn(false), in(false)
{
	clbk = 0x00328032;
	cltxt = RGB(255,255,255);
	clfr = RGB(255,255,255);
	clfocus = 0x000064ff;
	cldef = 0x0032c032;//0x000064ff;
}

CTransButton::~CTransButton()
{
}


BEGIN_MESSAGE_MAP(CTransButton, CButton)
	//{{AFX_MSG_MAP(CTransButton)
	ON_WM_ERASEBKGND()
	ON_WM_MOUSEMOVE()
	ON_WM_LBUTTONUP()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTransButton message handlers
#include "memdc.h"
#include "logfont.h"
void CTransButton::paintbk()
{
	CClientDC cdc(this);
	CRect rc;
	GetWindowRect(rc);
	GetParent()->ScreenToClient(rc);
	CDC* dc = GetParent()->GetDC();
	cdc.BitBlt(0, 0, rc.Width(), rc.Height(), dc, rc.left, rc.top, SRCCOPY);
	GetParent()->ReleaseDC(dc);
}

void CTransButton::DrawItem(LPDRAWITEMSTRUCT dis) 
{
//	paintbk();

	CRect rc(dis->rcItem);
	
	CDC *pdc = CDC::FromHandle(dis->hDC);

	CMemDC mdc(pdc, rc);
	CString title;
	GetWindowText(title);

	COLORREF bk=clbk, fr=clfr, txt=cltxt;
	CFont *ft1 = GetParent()->GetFont();
	CFont ft;
	logfont lf(ft1);
	if( def_btn )
	{
		rc.DeflateRect(2,2,2,2);
		mdc.FrameRect(rc, &CBrush(RGB(0,0,0)));
		rc.InflateRect(1,1,1,1);
	}
	0x31a464;
	if( GetParent()->GetFocus() == this )
	{
		//bk = cldef;
		//bk = RGB(0,60,0);
		bk = RGB(255,0,0);
		txt = RGB(255,255,255);
		lf.lfWeight = FW_BOLD;
	}
	if( in )
		bk = clfocus;

	if( !IsWindowEnabled() )
	{
		bk = ::GetSysColor(COLOR_BTNFACE);
		txt = ::GetSysColor(COLOR_BTNSHADOW);
	}

	mdc.FillRect(rc, &CBrush(bk));
	
	lf.create_font(&ft);
	ft1 = mdc.SelectObject(&ft);
	// mdc.SetBkColor(clbk);
	mdc.SetBkMode(TRANSPARENT);
	mdc.SetTextColor(txt);
	mdc.DrawText(title, rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS);
	mdc.SelectObject(ft1);

	mdc.FrameRect(rc, &CBrush(fr));
}

void CTransButton::PreSubclassWindow() 
{
	if( GetButtonStyle() == BS_DEFPUSHBUTTON )
		def_btn = true;
	else
		def_btn = false;

//	GetButtonStyle();
	SetButtonStyle(BS_OWNERDRAW | BS_NOTIFY);
	CButton::PreSubclassWindow();
}

void CTransButton::set_bk(COLORREF bk)
{
	clbk = bk;
	if( IsWindow(m_hWnd) )
		RedrawWindow();
}

BOOL CTransButton::OnEraseBkgnd(CDC* pDC) 
{

	return TRUE;
}

void CTransButton::OnMouseMove(UINT nFlags, CPoint point) 
{
	CRect rc;
	GetWindowRect(rc);
	CPoint pt(point);
	ClientToScreen(&pt);
	if( rc.PtInRect(pt) )
	{
		if( !in )
		{
			in = true;
			SetCapture();
			RedrawWindow();
		}
	}
	else
	{
		if( in )
		{
			in = false;
			ReleaseCapture();
			RedrawWindow();
		}
	}
	CButton::OnMouseMove(nFlags, point);
}

void CTransButton::OnLButtonUp(UINT nFlags, CPoint point) 
{
	in = false;
	SetFocus();
	ReleaseCapture();
	click_btn(GetParent(), GetDlgCtrlID());
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -