📄 mine.cpp
字号:
// Mine.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "Mine.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMineApp
BEGIN_MESSAGE_MAP(CMineApp, CWinApp)
//{{AFX_MSG_MAP(CMineApp)
//}}AFX_MSG
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMineApp construction
CMineApp::CMineApp()
{
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CMineApp object
CMineApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CMineApp initialization
BOOL CMineApp::InitInstance()
{
// Load string resources
for(int i=0; i<STR_NUM; i++)
{
::LoadString(NULL,i,sResource[i],STR_BUF_MAX);
}
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
SetRegistryKey("LPQ_2004");
LoadGameInfo();
uSecends = 0;
uRemainMines = uCustomMineNum;
pWnd = new CMineWnd;
WNDCLASS wc;
ZeroMemory(&wc, sizeof wc);
wc.hInstance = AfxGetInstanceHandle();
wc.lpfnWndProc = ::DefWindowProc;
wc.lpszClassName = gcszWndClass;
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU);
wc.hbrBackground = NULL;
wc.hCursor = ::LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(MAKEINTRESOURCE(IDR_MAINFRAME));
// Register the new class and exit if it fails
if(!AfxRegisterClass(&wc))
{
AfxMessageBox(sResource[8]);
return FALSE;
}
UINT width = DEFAULT_FRAME_WIDTH + theApp.uCustomWidth*MINE_WIDTH +
LINE_WIDTH_0*3 + SIDE_WIDTH_0 + SIDE_WIDTH_1;
UINT height = DEFAULT_FRAME_HEIGHT + theApp.uCustomHeight*MINE_HEIGHT +
LINE_WIDTH_0*3 + SIDE_WIDTH_1 + SIDE_WIDTH_0*2 + RECT_HEIGHT_0;
UINT uPosX = ::GetSystemMetrics(SM_CXSCREEN)/2 - width/2;
UINT uPosY = ::GetSystemMetrics(SM_CYSCREEN)/2 - height/2;
if( !pWnd->CreateEx( 0, gcszWndClass,sResource[5],
WS_SYSMENU| WS_CAPTION |WS_MINIMIZEBOX,
uPosX, uPosY, width, height,
NULL, NULL) )
{
AfxMessageBox(sResource[9]);
return FALSE;
}
m_pMainWnd = pWnd;
RECT rect;
pWnd->GetClientRect(&rect);
uFrameWidth = width - rect.right;
uFrameHeight = height - rect.bottom;
pWnd->SetWindowSize();
pWnd->ShowWindow(SW_SHOWNORMAL);
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return TRUE;
}
int CMineApp::ExitInstance()
{
delete pWnd;
SaveGameInfo();
return CWinApp::ExitInstance();
}
BOOL CMineApp::LoadGameInfo()
{
uGameLevel = GetProfileInt(gcszSetting,gcszGameLevel,LEVEL_PRIMARY);
uCustomWidth = GetProfileInt(gcszSetting,gcszCustomWidth,PRIMARY_WIDTH);
uCustomHeight = GetProfileInt(gcszSetting,gcszCustomHeight,PRIMARY_HEIGHT);
uCustomMineNum = GetProfileInt(gcszSetting,gcszCustomMineNum,PRIMARY_MINE_NUM);
bColor = GetProfileInt(gcszSetting,gcszColor,TRUE);
bSound = GetProfileInt(gcszSetting,gcszSound,FALSE);
bMarked = GetProfileInt(gcszSetting,gcszMarked,FALSE);
uPrimaryRecord = GetProfileInt(gcszSetting,gcszPrimaryRecord,DEFAULT_RECORD);
uSecondaryRecord = GetProfileInt(gcszSetting,gcszSecondaryRecord,DEFAULT_RECORD);
uAdvancedRecord = GetProfileInt(gcszSetting,gcszAdvancedRecord,DEFAULT_RECORD);
sPrimaryRecordHolder = GetProfileString(gcszSetting,gcszPrimaryRecordHolder,sResource[1]);
sSecondaryRecordHolder = GetProfileString(gcszSetting,gcszSecondaryRecordHolder,sResource[1]);
sAdvancedRecordHolder = GetProfileString(gcszSetting,gcszAdvancedRecordHolder,sResource[1]);
return TRUE;
}
BOOL CMineApp::SaveGameInfo()
{
WriteProfileInt(gcszSetting,gcszGameLevel,uGameLevel);
WriteProfileInt(gcszSetting,gcszCustomWidth,uCustomWidth);
WriteProfileInt(gcszSetting,gcszCustomHeight,uCustomHeight);
WriteProfileInt(gcszSetting,gcszCustomMineNum,uCustomMineNum);
WriteProfileInt(gcszSetting,gcszColor,bColor);
WriteProfileInt(gcszSetting,gcszSound,bSound);
WriteProfileInt(gcszSetting,gcszMarked,bMarked);
WriteProfileInt(gcszSetting,gcszPrimaryRecord,uPrimaryRecord);
WriteProfileInt(gcszSetting,gcszSecondaryRecord,uSecondaryRecord);
WriteProfileInt(gcszSetting,gcszAdvancedRecord,uAdvancedRecord);
WriteProfileString(gcszSetting,gcszPrimaryRecordHolder,sPrimaryRecordHolder);
WriteProfileString(gcszSetting,gcszSecondaryRecordHolder,sSecondaryRecordHolder);
WriteProfileString(gcszSetting,gcszAdvancedRecordHolder,sAdvancedRecordHolder);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -