?? ledctrl.h
字號(hào):
#if !defined(AFX_LEDCTRL_H__ACA9A844_C33B_4A0E_AB89_5F59BBB41392__INCLUDED_)
#define AFX_LEDCTRL_H__ACA9A844_C33B_4A0E_AB89_5F59BBB41392__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// LedCtrl.h : header file
//
// 128
// _
// 4|2|64
// 8|_|32
// 16
const DWORD NOTCH1 = 128; //表示第1畫
const DWORD NOTCH2 = 64; //表示第2畫
const DWORD NOTCH3 = 32; //表示第3畫
const DWORD NOTCH4 = 16; //表示第4畫
const DWORD NOTCH5 = 8; //表示第5畫
const DWORD NOTCH6 = 4; //表示第6畫
const DWORD NOTCH7 = 2; //表示第7畫
const DWORD STCOUNTER0 = 252; //代表畫0時(shí),需要筆畫組合
const DWORD STCOUNTER1 = 96; //代表畫1時(shí),需要筆畫組合
const DWORD STCOUNTER2 = 218; //代表畫2時(shí),需要筆畫組合
const DWORD STCOUNTER3 = 242; //代表畫3時(shí),需要筆畫組合
const DWORD STCOUNTER4 = 102; //代表畫4時(shí),需要筆畫組合
const DWORD STCOUNTER5 = 182; //代表畫5時(shí),需要筆畫組合
const DWORD STCOUNTER6 = 190; //代表畫6時(shí),需要筆畫組合
const DWORD STCOUNTER7 = 224; //代表畫7時(shí),需要筆畫組合
const DWORD STCOUNTER8 = 254; //代表畫8時(shí),需要筆畫組合
const DWORD STCOUNTER9 = 246; //代表畫9時(shí),需要筆畫組合
const DWORD STCOUNTERALL = 999; //代表繪制所有
//內(nèi)存繪制環(huán)境
class CMemDC : public CDC {
private:
CBitmap m_bitmap; //離屏位圖
CBitmap* m_oldBitmap; //存儲(chǔ)舊位圖
CDC* m_pDC; //存儲(chǔ)繪圖環(huán)境
CRect m_rect; //存儲(chǔ)控件矩形區(qū)域
BOOL m_bMemDC; //判斷繪圖環(huán)境是否準(zhǔn)備好
public:
//構(gòu)造函數(shù)
CMemDC(CDC* pDC, CRect rect = CRect(0,0,0,0)) : CDC(), m_oldBitmap(NULL), m_pDC(pDC)
{
//判斷繪圖是否為空
ASSERT(m_pDC != NULL);
//判斷繪圖環(huán)境是否準(zhǔn)備好
m_bMemDC = !pDC->IsPrinting();
if (m_bMemDC)
{
//創(chuàng)建離屏繪制環(huán)境
CreateCompatibleDC(pDC);
if ( rect == CRect(0,0,0,0) )
pDC->GetClipBox(&m_rect);
else
m_rect = rect;
//創(chuàng)建離屏位圖
m_bitmap.CreateCompatibleBitmap(pDC, m_rect.Width(), m_rect.Height());
m_oldBitmap = SelectObject(&m_bitmap);
} else
{
m_hDC = pDC->m_hDC;
m_hAttribDC = pDC->m_hAttribDC;
}
}
//析構(gòu)函數(shù)
~CMemDC()
{
if (m_bMemDC) {
//將離屏位圖繪制屏幕上
m_pDC->BitBlt(m_rect.left, m_rect.top, m_rect.Width(), m_rect.Height(),
this, m_rect.left, m_rect.top, SRCCOPY);
//將舊位圖重新選擇到繪圖環(huán)境
SelectObject(m_oldBitmap);
} else {
m_hDC = m_hAttribDC = NULL;
}
}
//指針操作符操作
CMemDC* operator->() {return this;}
//指針操作符操作
operator CMemDC*() {return this;}
};
/////////////////////////////////////////////////////////////////////////////
// CLedCtrl window
class CLedCtrl : public CStatic
{
// Construction
public:
CLedCtrl();
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CLedCtrl)
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CLedCtrl();
// Generated message map functions
protected:
//{{AFX_MSG(CLedCtrl)
afx_msg void OnPaint();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
public:
//設(shè)置是否繪制淡入淡出效果
void SetDrawFaded(bool bState = true);
//設(shè)置前景色
void SetColorForeGround(COLORREF crColor = 0xffffffff);
//設(shè)置背景色
void SetColorBackGround(COLORREF crColor = 0xffffffff);
//顯示數(shù)字
void Display( int nNumber );
protected:
//繪制數(shù)字的某一部分
void Draw( CMemDC* pDC, DWORD dwChar, int nCol);
protected:
//存儲(chǔ)是否繪制淡入淡出效果開(kāi)關(guān)變量
bool m_bDrawFadedNotches;
//表示是否已經(jīng)設(shè)置換算關(guān)系
bool m_bGotMetrics;
//存儲(chǔ)控件客戶區(qū)域
RECT m_recClient;
//設(shè)置點(diǎn)寬度
int m_nNotchWidth;
//設(shè)置點(diǎn)長(zhǎng)度
int m_nNotchLength;
//存儲(chǔ)顯示的數(shù)字
CString m_strNumber;
//控件背景色
COLORREF m_crColorBackground;
//控件前景色,也就是數(shù)字顏色
COLORREF m_crColorForeground;
//背景畫刷
CBrush m_brBackground;
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_LEDCTRL_H__ACA9A844_C33B_4A0E_AB89_5F59BBB41392__INCLUDED_)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -