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

📄 ~pushck.~cpp

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

#include "stdafx.h"
#include "..\dvrmanager.h"
#include "PushCK.h"
#include "memdc.h"
#include "logfont.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPushCK

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

CPushCK::~CPushCK()
{
}


BEGIN_MESSAGE_MAP(CPushCK, CButton)
	//{{AFX_MSG_MAP(CPushCK)
	ON_WM_ERASEBKGND()
	//}}AFX_MSG_MAP
	ON_MESSAGE(BM_SETCHECK, on_set_check)
	ON_MESSAGE(BM_GETCHECK, on_get_check)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPushCK message handlers

void CPushCK::PreSubclassWindow() 
{
	SetButtonStyle(BS_OWNERDRAW);
	CButton::PreSubclassWindow();
}

BOOL CPushCK::OnEraseBkgnd(CDC* pDC) 
{
	return TRUE;
}

void CPushCK::DrawItem(LPDRAWITEMSTRUCT dis) 
{
	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( 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));

}

LRESULT CPushCK::on_get_check(WPARAM w, LPARAM l)
{
	if( check )
		return BST_CHECKED;
	else
		return BST_UNCHECKED;
}
LRESULT CPushCK::on_set_check(WPARAM w, LPARAM l)
{
	if( w == BST_CHECKED )
		check = true;
	else
		check = false;
	RedrawWindow();
	return 0;
}

void CPushCK::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);
}

⌨️ 快捷键说明

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