?? ~pushck.~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);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -