?? scoreview.cpp
字號:
#include "StdAfx.h"
#include "ScoreView.h"
//////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CScoreView, CWnd)
ON_WM_PAINT()
ON_WM_CREATE()
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////
//構造函數
CScoreView::CScoreView(void)
{
//設置數據
m_lTax=0L;
memset(m_lScore,0,sizeof(m_lScore));
memset(m_szUserName,0,sizeof(m_szUserName));
//加載資源
m_ImageBack.SetLoadInfo(IDB_GAME_END,AfxGetInstanceHandle());
}
//析構函數
CScoreView::~CScoreView(void)
{
}
//建立消息
int CScoreView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (__super::OnCreate(lpCreateStruct)==-1) return -1;
//設置數據
m_lTax=0L;
memset(m_lScore,0,sizeof(m_lScore));
memset(m_szUserName,0,sizeof(m_szUserName));
//設置界面
SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL);
//移動窗口
CImageHandle ImageHandle(&m_ImageBack);
SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOMOVE|SWP_NOZORDER);
return 0;
}
//重畫函數
void CScoreView::OnPaint()
{
CPaintDC dc(this);
//設置 DC
dc.SetBkMode(TRANSPARENT);
dc.SetTextAlign(TA_CENTER);
dc.SetTextColor(RGB(250,250,250));
dc.SelectObject(&CSkinAttribute::m_DefaultFont);
//繪畫背景
CImageHandle ImageHandle(&m_ImageBack);
m_ImageBack.BitBlt(dc,0,0);
//顯示分數
WORD wStation=0;
TCHAR szBuffer[64]=TEXT("");
for (WORD i=0;i<CountArray(m_szUserName);i++)
{
if (m_szUserName[i][0]!=0)
{
dc.TextOut(106,(int)(wStation*25+85),m_szUserName[i]);
_snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lScore[i]);
dc.TextOut(232,(int)(wStation*25+85),szBuffer,lstrlen(szBuffer));
wStation++;
}
}
//顯示稅收
if (wStation>0)
{
LPCTSTR pszTax=TEXT("交易稅");
dc.TextOut(106,(int)(wStation*25+85),pszTax,lstrlen(pszTax));
_snprintf(szBuffer,sizeof(szBuffer),"%ld",m_lTax);
dc.TextOut(232,(int)(wStation*25+85),szBuffer,lstrlen(szBuffer));
}
return;
}
//重置積分
void CScoreView::ResetScore()
{
//設置數據
m_lTax=0L;
memset(m_lScore,0,sizeof(m_lScore));
memset(m_szUserName,0,sizeof(m_szUserName));
//繪畫視圖
Invalidate(NULL);
return;
}
//設置稅收
void CScoreView::SetTax(LONG lTax)
{
if (m_lTax!=lTax)
{
m_lTax=lTax;
Invalidate(NULL);
}
return;
}
//設置積分
void CScoreView::SetGameScore(WORD wChairID, LPCTSTR pszUserName, LONG lScore)
{
if (wChairID<CountArray(m_lScore))
{
m_lScore[wChairID]=lScore;
lstrcpyn(m_szUserName[wChairID],pszUserName,CountArray(m_szUserName[wChairID]));
Invalidate(FALSE);
}
return;
}
//鼠標消息
void CScoreView::OnLButtonDown(UINT nFlags, CPoint point)
{
SendMessage( WM_NCLBUTTONDOWN, HTCAPTION, 0 );
}
//////////////////////////////////////////////////////////////////////////
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -