📄 ~transgroup.~cpp
字号:
// TransGroup.cpp : implementation file
//
#include "stdafx.h"
#include "../dvrmanager.h"
#include "TransGroup.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_DYNCREATE(CTransGroup, CButton)
/////////////////////////////////////////////////////////////////////////////
// CTransGroup
CTransGroup::CTransGroup()
{
}
CTransGroup::~CTransGroup()
{
}
BEGIN_MESSAGE_MAP(CTransGroup, CButton)
//{{AFX_MSG_MAP(CTransGroup)
ON_WM_ERASEBKGND()
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTransGroup message handlers
BOOL CTransGroup::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
}
void CTransGroup::PreSubclassWindow()
{
SetButtonStyle(BS_OWNERDRAW);
CButton::PreSubclassWindow();
}
void CTransGroup::OnPaint()
{
CPaintDC dc(this); // device context for painting
CDC* pdc = &dc;
CRect rc;
GetClientRect(rc);
/*
* 当前字体需要的空间大小
*/
CString title;
GetWindowText(title);
// ASSERT( !title.IsEmpty() );
CFont* old = GetParent()->GetFont();
LOGFONT lf;
old->GetLogFont(&lf);
lf.lfHeight -= 1;
lf.lfWeight = FW_BOLD;
CFont ft;
ft.CreateFontIndirect(&lf);
old = pdc->SelectObject(&ft);
CSize text_size = pdc->GetOutputTextExtent(title);
int cx = text_size.cx;
int cy = text_size.cy;
COLORREF cltxt = RGB(255,255,255);
//COLORREF cltxt = 0;
//COLORREF cltxt = RGB(0,0,80);
CRect rCButton(rc);
rCButton.top += cy+title_vmargin;
pdc->FrameRect(rCButton, &CBrush(cltxt));
CRect rctext;
rctext.left = title_left;
rctext.right = rctext.left + cx + title_margin*2;
rctext.top = 0;
rctext.bottom = rctext.top + cy + title_vmargin;
if( rctext.right > rc.right )
rctext.right = rc.right-cy-title_left;
// 白色边框
// pdc->FrameRect(rCButton, &CBrush(RGB(255,255,255)));
///*
/* pdc->SelectStockObject(WHITE_PEN);
pdc->MoveTo(title_left, rctext.bottom);
pdc->LineTo(title_left+cy+title_vmargin, rctext.top);
pdc->LineTo(rctext.right, rctext.top);
pdc->LineTo(rctext.right, rctext.bottom);
/* pdc->MoveTo(0, rctext.bottom);
pdc->LineTo(rctext.left-cy, rctext.bottom);
pdc->LineTo(rctext.left, rctext.top);
pdc->LineTo(rctext.right, rctext.top);
pdc->LineTo(rctext.right+cy, rctext.bottom);
pdc->LineTo(rc.right-1, rctext.bottom);
pdc->LineTo(rc.right-1, rc.bottom);
pdc->LineTo(rc.left, rc.bottom);
pdc->LineTo(rc.left, rctext.bottom);
*/
pdc->SetBkMode(TRANSPARENT);
pdc->SetTextColor(cltxt);
pdc->DrawText(title, rctext, DT_SINGLELINE | DT_CENTER | DT_WORD_ELLIPSIS);
//*/
pdc->SelectObject(old);
}
void CTransGroup::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -