📄 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 + -