?? datastatic.cpp
字號:
// DataStatic.cpp : implementation file
//
#include "stdafx.h"
#include "DataStatic.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDataStatic
CDataStatic::CDataStatic()
{
m_bkBrush.CreateSolidBrush(RGB(120,120,110));//控件的背景色
m_clrBkgnd=RGB(120,120,110);//字體背景色
m_clrText=RGB(255,255,240);//字體顏色
::GetObject((HFONT)GetStockObject(DEFAULT_GUI_FONT),sizeof(m_lf),&m_lf);
m_font.CreateFontIndirect(&m_lf);
m_nCounter=0;
m_bIsFlushing=FALSE;
m_bFlushOn=FALSE;
}
CDataStatic::~CDataStatic()
{
m_font.DeleteObject();
}
BEGIN_MESSAGE_MAP(CDataStatic, CStatic)
//{{AFX_MSG_MAP(CDataStatic)
ON_WM_CTLCOLOR_REFLECT()
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDataStatic message handlers
HBRUSH CDataStatic::CtlColor(CDC* pDC, UINT nCtlColor)
{
// TODO: Change any attributes of the DC here
// TODO: Return a non-NULL brush if the parent's handler should not be called
// TODO: Return a non-NULL brush if the parent's handler should not be called
pDC->SetTextColor( m_clrText ); // text
pDC->SetBkColor( m_clrBkgnd ); // text bkgnd
pDC->SelectObject(&m_font); // Select font
return m_bkBrush; // ctl bkgnd
}
void CDataStatic::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent==1)
{
if(m_nCounter<40)
{
FlushPic();
}
else if(m_nCounter>=40)
{
OnFlushing(FALSE,0);
}
m_nCounter++;
}
CStatic::OnTimer(nIDEvent);
}
void CDataStatic::FlushPic()
{
// Flush the control
if(m_bFlushOn)
{
if(m_nFlushStatus==0)
{
m_bkBrush.DeleteObject();
m_bkBrush.CreateSolidBrush(RGB(0,255,153));
m_clrBkgnd=RGB(0,255,153);
}
else if(m_nFlushStatus==1)
{
m_bkBrush.DeleteObject();
m_bkBrush.CreateSolidBrush(RGB(255,0,0));
m_clrBkgnd=RGB(255,0,0);
}
}
else
{
m_bkBrush.DeleteObject();
m_bkBrush.CreateSolidBrush(RGB(166,203,240));
m_clrBkgnd=RGB(166,203,240);
}
Invalidate();
m_bFlushOn=!m_bFlushOn;
}
void CDataStatic::OnFlushing(BOOL bFlush,int nStatus)
{
// Begin flush
if(bFlush)
{
m_nCounter=0;
SetTimer(1,110,NULL);
m_bFlushOn=TRUE;
m_bIsFlushing=TRUE;
m_nFlushStatus=nStatus;
}
else
{
KillTimer(1);
m_bFlushOn=FALSE;
m_bIsFlushing=FALSE;
m_nCounter=0;
m_bkBrush.DeleteObject();
m_bkBrush.CreateSolidBrush(RGB(166,203,240));
m_clrBkgnd=RGB(166,203,240);
Invalidate();
}
}
BOOL CDataStatic::ResetBkColor(COLORREF clr)
{
// Reset the text bk color and static bk color
if(m_bkBrush.m_hObject==NULL)
{
m_bkBrush.CreateSolidBrush(clr);
m_clrBkgnd=clr;
}
else
{
m_bkBrush.DeleteObject();
m_bkBrush.CreateSolidBrush(clr);
m_clrBkgnd=clr;
}
Invalidate();
return TRUE;
}
BOOL CDataStatic::ResetTxColor(COLORREF clr)
{
//reset the text color
m_clrText=clr;
Invalidate();
return TRUE;
}
BOOL CDataStatic::ResetFont(int nSize,CString strFont)
{
// Reset the font
m_lf.lfHeight=-1*nSize;
strcpy(m_lf.lfFaceName,strFont);
m_font.DeleteObject();
BOOL bCreated = m_font.CreateFontIndirect(&m_lf);
ASSERT(bCreated);
Invalidate();
return bCreated;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -