?? transck.cpp
字號:
// TransCK.cpp : implementation file
//
#include "stdafx.h"
#include "..\dvrmanager.h"
#include "TransCK.h"
#include "rect.h"
#include "click_btn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTransCK
//##ModelId=3F90BAA8008A
CTransCK::CTransCK(): checked(FALSE), in(false)
{
}
//##ModelId=3F90BAA8009F
CTransCK::~CTransCK()
{
}
BEGIN_MESSAGE_MAP(CTransCK, CButton)
//{{AFX_MSG_MAP(CTransCK)
ON_WM_ERASEBKGND()
ON_WM_LBUTTONUP()
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
ON_WM_GETDLGCODE()
ON_WM_KEYUP()
//}}AFX_MSG_MAP
ON_MESSAGE(BM_GETCHECK, on_get_check)
ON_MESSAGE(BM_SETCHECK, on_set_check)
ON_MESSAGE(BM_GETSTATE, on_get_state)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTransCK message handlers
//##ModelId=3F90BAA800B2
BOOL CTransCK::OnEraseBkgnd(CDC* pDC)
{
// paint_bk(pDC);
return TRUE;
}
//##ModelId=3F90BAA80096
void CTransCK::PreSubclassWindow()
{
ASSERT( GetButtonStyle() & BS_CHECKBOX );
SetButtonStyle(BS_OWNERDRAW);
checked = GetCheck();
CButton::PreSubclassWindow();
}
//##ModelId=3F90BAA80080
void CTransCK::draw_box(CDC* pdc)
{
const int R = 14;
UINT style = GetButtonStyle();
CRect rc;
GetClientRect(rc);
CRect rc_box(rc);
COLORREF fill = clfill, tick = cltick, fr = clfr;
if( !IsWindowEnabled() )
{
fill = GetSysColor(COLOR_BTNSHADOW);
tick = 0;//GetSysColor(COLOR_BTNFACE);
}
if( in || (GetParent()->GetFocus() == this) )
fr = 0;
if( style & BS_LEFTTEXT )
{
rc_box.top = rc_box.bottom - R;
rc_box.left = rc_box.right - R;
}
else
{
rc_box.bottom = rc_box.top + R;
rc_box.right = rc_box.left + R;
}
vcenter_rect(rc, rc_box);
pdc->FrameRect(rc_box, &CBrush(fr));
rc_box.DeflateRect(2,2,2,2);
pdc->FillRect(rc_box, &CBrush(fill));
if( !checked )
return;
CPen pen, *old;
pen.CreatePen(PS_SOLID, 2, tick);
old = pdc->SelectObject(&pen);
rc_box.DeflateRect(2,2,2,2);
pdc->MoveTo(rc_box.left, rc_box.bottom - rc_box.Height()/3);
pdc->LineTo(rc_box.left+rc_box.Width()/3, rc_box.bottom);
pdc->LineTo(rc_box.right, rc_box.top + rc_box.Height()/3);
pdc->SelectObject(old);
}
//##ModelId=3F90BAA8008B
void CTransCK::DrawItem(LPDRAWITEMSTRUCT s)
{
const int R = 14;
CDC* pdc = CDC::FromHandle(s->hDC);
CString str;
GetWindowText(str);
CRect rc(s->rcItem);
pdc->SetBkMode(TRANSPARENT);
pdc->SetTextColor(RGB(255,255,255));
if( (GetButtonStyle() & BS_LEFTTEXT) == 0 )
{
rc.OffsetRect(R+4, 0);
}
pdc->DrawText(str, rc, DT_LEFT | DT_SINGLELINE);
draw_box(pdc);
}
//##ModelId=3F90BAA80103
LRESULT CTransCK::on_get_check(WPARAM, LPARAM)
{
return checked;
}
//##ModelId=3F90BAA8010E
LRESULT CTransCK::on_set_check(WPARAM w, LPARAM)
{
checked = w;
RedrawWindow();
return 0;
}
//##ModelId=3F90BAA80122
LRESULT CTransCK::on_get_state(WPARAM, LPARAM)
{
return checked;
}
//##ModelId=3F90BAA800BC
void CTransCK::OnLButtonUp(UINT nFlags, CPoint point)
{
CRect rc;
GetWindowRect(rc);
CPoint pt(point);
ClientToScreen(&pt);
if( rc.PtInRect(pt) )
{
checked = !checked;
RedrawWindow();
click_btn(GetParent(), GetDlgCtrlID());
}
//CButton::OnLButtonUp(nFlags, point);
ReleaseCapture();
in = false;
}
//##ModelId=3F90BAA800C8
void CTransCK::OnLButtonDown(UINT nFlags, CPoint point)
{
SetCapture();
// CButton::OnLButtonDown(nFlags, point);
}
//##ModelId=3F90BAA800DB
void CTransCK::OnMouseMove(UINT nFlags, CPoint point)
{
CRect rc;
CPoint pt;
GetWindowRect(rc);
GetCursorPos(&pt);
if( rc.PtInRect(pt) )
{
if( !in )
{
in = true;
SetCapture();
RedrawWindow();
}
}
else
{
if( in )
{
in = false;
ReleaseCapture();
RedrawWindow();
}
}
CButton::OnMouseMove(nFlags, point);
}
//##ModelId=3F90BAA800E6
UINT CTransCK::OnGetDlgCode()
{
return DLGC_BUTTON;
}
//##ModelId=3F90BAA800EF
void CTransCK::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if( nChar == VK_SPACE )
{
checked = !checked;
click_btn(GetParent(), GetDlgCtrlID());
RedrawWindow();
}
CButton::OnKeyUp(nChar, nRepCnt, nFlags);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -