亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? scoredlg.cpp

?? 《vc游戲編程導(dǎo)學(xué)》一書的原代碼
?? CPP
字號(hào):
/////////////////////////////////////////////////////////////////////////////
// This file is part of the completely free tetris clone "CGTetris".
//
// This is free software.
// You may redistribute it by any means providing it is not sold for profit
// without the authors written consent.
//
// No warrantee of any kind, expressed or implied, is included with this
// software; use at your own risk, responsibility for damages (if any) to
// anyone resulting from the use of this software rests entirely with the
// user.
/////////////////////////////////////////////////////////////////////////////


// ScoreDlg.cpp : implementation file
//

#include "stdafx.h"
#include "tetris.h"
#include "ScoreDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CScoreDlg property page

IMPLEMENT_DYNCREATE(CScoreDlg, CBitmapPropPage)

CScoreDlg::CScoreDlg() : CBitmapPropPage(CScoreDlg::IDD, IDS_TitleScorePage)
{
	m_ScoreArray.reserve(MAXSCORE);
	m_bCanEditName = FALSE;
	//{{AFX_DATA_INIT(CScoreDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_psp.dwFlags &= ~PSP_HASHELP;
}

CScoreDlg::~CScoreDlg()
{
}

void CScoreDlg::DoDataExchange(CDataExchange* pDX)
{
	CBitmapPropPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CScoreDlg)
	DDX_Control(pDX, IDC_ListScore, m_ctrlScore);
	//}}AFX_DATA_MAP
}


BOOL CScoreDlg :: IsHiScore(UINT uScore) const {
	if( m_ScoreArray.size() < (MAXSCORE-1) )
		return TRUE;
	else {
		const_iterator itend(m_ScoreArray.end());
		for(const_iterator it(m_ScoreArray.begin()); it != itend; ++it)
			if( uScore > it->m_uScore )
				return TRUE;
	}
	return FALSE;
}


void CScoreDlg :: AddHiScore(UINT uScore, UINT uLevel) {
	int index = 0;
	const_iterator itend(m_ScoreArray.end());
	iterator it(m_ScoreArray.begin());
	for(; it != itend; ++it, ++index)
		if( uScore > it->m_uScore )
			break;

	CString strName;
	TCHAR name[256];
	DWORD dwSize = 255;
	::ZeroMemory(PVOID(name), 256);
	if( ::GetUserName(name, &dwSize) ) {
		name[dwSize] = TEXT('\0');
		strName = name;
	}

	m_ScoreArray.insert(it, ScoreTag(strName, uScore, uLevel));
	if( m_ScoreArray.size() >= MAXSCORE )
		m_ScoreArray.resize(MAXSCORE);

	VERIFY(AddHiScore(index, strName, uScore, uLevel) == index);

	m_bCanEditName = TRUE;
	CEdit * pEdit =	m_ctrlScore.EditLabel(index);
	ASSERT(pEdit != 0);
	pEdit->LimitText(30);	// that should be enough ...
}


int CScoreDlg :: AddHiScore(int nIndex, const CString & strName, UINT uScore, UINT uLevel) {
	ASSERT(nIndex < MAXSCORE);

	CString strScore, strLevel;
	strScore.Format("%u", uScore);
	strLevel.Format("%u", uLevel);

	VERIFY(m_ctrlScore.InsertItem(LVIF_TEXT, nIndex, strName, 0, 0, 0, 0) == nIndex );
	VERIFY(m_ctrlScore.SetItem(nIndex, 1, LVIF_TEXT, strScore, 0, 0, 0, 0));
	VERIFY(m_ctrlScore.SetItem(nIndex, 2, LVIF_TEXT, strLevel, 0, 0, 0, 0));

	return nIndex;
}


void CScoreDlg :: SaveHiScore() const {
	for( register size_type i = 0; i < m_ScoreArray.size(); ++i )
		theApp.WriteHiScore(int(i), m_ScoreArray[i].m_strName, m_ScoreArray[i].m_uScore, m_ScoreArray[i].m_uLevel);
}

void CScoreDlg :: RestoreHiScore() {
	for( register int i = 0; i < MAXSCORE; ++i ) {
		ScoreTag sc;
		if( ! theApp.GetHiScore(i, sc.m_strName, sc.m_uScore, sc.m_uLevel) )
			break;	// no more scores saved
		m_ScoreArray.push_back(sc);
	}
}


void CScoreDlg :: LoadAllStrings() {
	VERIFY(CLanguage::LoadString(m_strName, IDS_HeaderName));
	VERIFY(CLanguage::LoadString(m_strScore, IDS_HeaderScore));
	VERIFY(CLanguage::LoadString(m_strLevel, IDS_HeaderLevel));

	LV_COLUMN col;
	memset(PVOID(&col), 0, sizeof(LV_COLUMN));

	if( m_ctrlScore.GetColumn(0, &col) ) {
		// columns already exist.
		m_ctrlScore.DeleteColumn(2);
		m_ctrlScore.DeleteColumn(1);
		m_ctrlScore.DeleteColumn(0);
	}
	CRect rect;
	m_ctrlScore.GetClientRect(rect);
	m_ctrlScore.InsertColumn(0, m_strName, LVCFMT_LEFT, rect.Width()/2, 0);
	m_ctrlScore.InsertColumn(1, m_strScore, LVCFMT_LEFT, rect.Width()/4, 1);
	m_ctrlScore.InsertColumn(2, m_strLevel, LVCFMT_LEFT, rect.Width()/4, 2);
}


BEGIN_MESSAGE_MAP(CScoreDlg, CBitmapPropPage)
	//{{AFX_MSG_MAP(CScoreDlg)
	ON_NOTIFY(LVN_BEGINLABELEDIT, IDC_ListScore, OnBeginLabelEdit)
	ON_NOTIFY(LVN_ENDLABELEDIT, IDC_ListScore, OnEndLabelEdit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CScoreDlg message handlers

BOOL CScoreDlg::OnInitDialog() 
{
	CBitmapPropPage::OnInitDialog();

	LoadAllStrings();

	int index = 0;
	const_iterator itend(m_ScoreArray.end());
	iterator it(m_ScoreArray.begin());
	for(; it != itend; ++it, ++index)
		AddHiScore(index, it->m_strName, it->m_uScore, it->m_uLevel);

	return TRUE;  // return TRUE unless you set the focus to a control
}


void CScoreDlg::OnBeginLabelEdit(NMHDR* pNMHDR, LRESULT* pResult) 
{
	*pResult = m_bCanEditName ? 0 : 1;
}

void CScoreDlg::OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult) 
{
	LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;

	size_type index = pDispInfo->item.iItem;
	ASSERT(index < MAXSCORE);

	LPCTSTR pszText = pDispInfo->item.pszText;

	if( pszText )
		m_ScoreArray[index].m_strName = pszText;

	m_bCanEditName = FALSE;

#ifdef _DEBUG
	{
		const_iterator itend(m_ScoreArray.end());
		iterator it(m_ScoreArray.begin());
		TRACE("\nscore list:\n");
		index=0;
		for(; it != itend; ++it, ++index)
			TRACE("%u.: %s, %u, %u\n", unsigned(index), LPCTSTR(it->m_strName), it->m_uScore, it->m_uLevel);
		TRACE("-----------------\n");
	}
#endif

	*pResult = pszText ? 1 : 0;
}

BOOL CScoreDlg::OnKillActive() 
{
	SaveHiScore();
	return CBitmapPropPage::OnKillActive();
}

void CScoreDlg::OnOK() 
{
	SaveHiScore();
	CBitmapPropPage::OnOK();
}

void CScoreDlg::OnCancel() 
{
	SaveHiScore();
	CBitmapPropPage::OnCancel();
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲无码一区二区三区| 亚洲欧美欧美一区二区三区| 不卡一区中文字幕| 五月综合激情婷婷六月色窝| 国产亚洲欧美色| 欧美日本一区二区在线观看| 国产九色sp调教91| 日韩**一区毛片| 夜夜夜精品看看| 国产精品久久久久永久免费观看 | 久久九九久久九九| 91精品婷婷国产综合久久| 成人成人成人在线视频| 久久成人精品无人区| 亚洲一区二区三区中文字幕 | 欧美一级片在线看| 欧洲生活片亚洲生活在线观看| 国产最新精品精品你懂的| 婷婷开心激情综合| 亚洲精品高清视频在线观看| 欧美国产日韩亚洲一区| 精品捆绑美女sm三区| 91精品在线免费观看| 欧美三级视频在线播放| 一本一本大道香蕉久在线精品| 国产乱妇无码大片在线观看| 精品中文av资源站在线观看| 日本免费在线视频不卡一不卡二| 亚洲成人自拍偷拍| 亚洲午夜视频在线观看| 亚洲精品国产一区二区精华液| 国产精品久久久久aaaa| 亚洲国产电影在线观看| 国产欧美视频一区二区| 国产喷白浆一区二区三区| 精品国产91乱码一区二区三区| 日韩三级中文字幕| 欧美一区二区三区视频在线| 91精品国产一区二区人妖| 欧美精品久久99| 日韩一级片在线播放| 欧美成人性福生活免费看| 精品久久久久久久久久久院品网| 精品久久一区二区三区| 久久夜色精品国产噜噜av | 中文字幕一区av| 国产精品美女久久久久久久久久久| 国产亚洲精品精华液| 国产欧美一区二区在线观看| 国产欧美一区二区精品久导航 | 麻豆久久久久久| 精品一区二区免费看| 久久99国内精品| 国产一区二区三区香蕉| 福利91精品一区二区三区| 国产一区二区三区久久久| 国产成人在线色| 94-欧美-setu| 欧美久久久影院| 精品国产自在久精品国产| 久久精品视频免费观看| 成人欧美一区二区三区白人| 亚洲一级不卡视频| 午夜一区二区三区在线观看| 久久丁香综合五月国产三级网站| 国产在线精品国自产拍免费| 成人高清视频在线观看| 欧美三级电影网| 精品美女在线播放| 亚洲天堂精品视频| 日日摸夜夜添夜夜添国产精品| 久久国产成人午夜av影院| youjizz国产精品| 欧美日精品一区视频| 日韩精品中文字幕一区| 国产精品电影院| 日韩综合在线视频| 成人综合在线观看| 欧美午夜精品一区二区蜜桃| 精品免费国产一区二区三区四区| 国产精品久久看| 日本中文字幕一区二区视频| 成人性生交大片免费看中文| 欧美三级在线播放| 国产精品理论片| 日韩av一区二区三区四区| 春色校园综合激情亚洲| 欧美精品亚洲二区| 国产精品三级av在线播放| 五月婷婷色综合| av在线播放成人| 欧美sm极限捆绑bd| 一区二区在线观看免费| 国产中文字幕一区| 欧美日韩国产在线观看| 国产精品视频你懂的| 日韩电影在线观看一区| jvid福利写真一区二区三区| 日韩欧美一卡二卡| 亚洲一区二区在线观看视频 | 久久久精品2019中文字幕之3| 亚洲美女偷拍久久| 国产一区二区不卡老阿姨| 欧美日韩精品二区第二页| 久久九九全国免费| 精品一区精品二区高清| 欧美日韩免费观看一区三区| 国产精品初高中害羞小美女文| 麻豆视频一区二区| 欧美男人的天堂一二区| 亚洲欧美二区三区| 丁香一区二区三区| 欧美一区二区三区在线观看| 有码一区二区三区| 97精品久久久久中文字幕| 久久久99精品免费观看| 麻豆精品视频在线观看视频| 在线播放视频一区| 一区二区免费看| 91视频免费看| 国产精品国产a| 不卡一卡二卡三乱码免费网站| 久久久精品国产免大香伊 | 成人一区二区三区视频在线观看| 欧美一级生活片| 蜜桃视频在线观看一区二区| 欧美日韩国产一级| 亚洲影视资源网| 91黄色激情网站| 亚洲精品欧美激情| 一本大道久久a久久综合| 亚洲欧美国产毛片在线| 91在线一区二区| 伊人开心综合网| 欧美三区免费完整视频在线观看| 一区二区三区自拍| 欧美色倩网站大全免费| 夜夜揉揉日日人人青青一国产精品| 91香蕉视频黄| 有码一区二区三区| 欧美三级蜜桃2在线观看| 水野朝阳av一区二区三区| 欧美男生操女生| 久久国产精品第一页| 久久久777精品电影网影网| 国产永久精品大片wwwapp| 久久综合久久综合久久| 粉嫩av一区二区三区粉嫩| 欧美国产日韩a欧美在线观看| www.爱久久.com| 亚洲最新视频在线播放| 884aa四虎影成人精品一区| 久久99精品久久久久久国产越南| 久久精品日产第一区二区三区高清版| 国产福利精品导航| 亚洲美女少妇撒尿| 欧美一区二区啪啪| 国产美女视频91| 最近中文字幕一区二区三区| 欧美午夜精品电影| 蜜桃视频在线观看一区| 国产日韩欧美高清在线| 91啪在线观看| 视频一区二区欧美| 久久久国产精品不卡| 色婷婷av一区二区三区gif| 日韩专区欧美专区| 久久精品亚洲麻豆av一区二区| 99re成人精品视频| 国产成人精品影视| 一级中文字幕一区二区| 欧美电影免费提供在线观看| 国产成人精品免费视频网站| 一区av在线播放| 久久久国产精华| 欧美在线视频日韩| 韩国av一区二区| 亚洲丶国产丶欧美一区二区三区| 欧美精品一区二区三区蜜桃视频 | 国内精品国产成人| 亚洲精品国产成人久久av盗摄 | 国产精品乡下勾搭老头1| 亚洲另类一区二区| 欧美夫妻性生活| 91啪亚洲精品| 国精产品一区一区三区mba视频| 亚洲欧美一区二区久久| 精品区一区二区| 欧美色综合网站| 大白屁股一区二区视频| 日本vs亚洲vs韩国一区三区二区 | 国产亲近乱来精品视频| 欧美二区三区的天堂| 高清国产一区二区三区| 五月天视频一区| 国产精品麻豆一区二区| 日韩三级视频在线观看| 在线欧美日韩精品| 不卡一区二区在线| 国产精品一级在线|