【VC开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了VC开源代码-PenteDlg.cpp的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
// PenteDlg.cpp : implementation file
//
#include "stdafx.h"
#include <math.h>
#include <mmsystem.h>
#include "Pente.h"
#include "dib.h"
#include "setupdlg.h"
#include "AboutDlg.h"
#include "RecordDlg.h"
#include "BestDlg.h"
#include "Globalvar0.h"
#include "HelperAPI.h"
#include "PenteDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPenteDlg dialog
CPenteDlg::CPenteDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPenteDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPenteDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_pMenu = new CMenu();
m_pDibBoard = new CDib;
m_pDibMask = new CDib;
m_pDibBlack = new CDib;
m_pDibWhite = new CDib;
InitParams();
//////////////////////////////////////////
char szVer[512];
///int nVer = GetWindowsVersion((LPSTR)szVer);
///if (stricmp(szVer, "Simplified Chinese")&&stricmp(szVer, "Chinese (PRC)")&&
/// stricmp(szVer, "中文")&&stricmp(szVer, "简体中文"))
/// g_bChinese = FALSE;
//////////////////////////////////////////
g_nSkill = AfxGetApp()->GetProfileInt("Settings", "Skill", 1);
g_bSoundOn = AfxGetApp()->GetProfileInt("Settings", "SoundOn", 1);
g_bUserBlack = AfxGetApp()->GetProfileInt("Settings", "UserUseBlackStone", 1);
g_nRunMode = AfxGetApp()->GetProfileInt("Settings", "Player", MODE_WITH_COMPUTER);
g_nTime1 = AfxGetApp()->GetProfileInt("Settings", "Time1", 225);
g_nTime2 = AfxGetApp()->GetProfileInt("Settings", "Time2", 225);
g_nTime3 = AfxGetApp()->GetProfileInt("Settings", "Time3", 225);
g_strName1 = AfxGetApp()->GetProfileString("Settings", "Name1", "Anonymous");
g_strName2 = AfxGetApp()->GetProfileString("Settings", "Name2", "Anonymous");
g_strName3 = AfxGetApp()->GetProfileString("Settings", "Name3", "Anonymous");
}
CPenteDlg::~CPenteDlg()
{
delete m_pMenu;
delete m_pDibBoard;
delete m_pDibMask;
delete m_pDibBlack;
delete m_pDibWhite;
AfxGetApp()->WriteProfileInt("Settings", "Skill", g_nSkill);
AfxGetApp()->WriteProfileInt("Settings", "SoundOn", g_bSoundOn);
AfxGetApp()->WriteProfileInt("Settings", "UserUseBlackStone", g_bUserBlack);
AfxGetApp()->WriteProfileInt("Settings", "Player", g_nRunMode);
AfxGetApp()->WriteProfileInt("Settings", "Time1", g_nTime1);
AfxGetApp()->WriteProfileInt("Settings", "Time2", g_nTime2);
AfxGetApp()->WriteProfileInt("Settings", "Time3", g_nTime3);
AfxGetApp()->WriteProfileString("Settings", "Name1", g_strName1);
AfxGetApp()->WriteProfileString("Settings", "Name2", g_strName2);
AfxGetApp()->WriteProfileString("Settings", "Name3", g_strName3);
}
void CPenteDlg::InitParams()
{
for (int i=0; i<BOARD_LINE_NUMBER;++i)
for (int j=0; j<BOARD_LINE_NUMBER; j++)
m_Board[i][j] = 0;
m_bGameOver = FALSE;
m_byColor = 0;
m_bCanUndo = FALSE;
m_bCanHint = TRUE;
m_wWhiteUndo = 0;
m_wBlackUndo = 0;
g_nStoneNum = 0;
m_rcCur1.SetRectEmpty();
m_rcCur2.SetRectEmpty();
m_rcHint.SetRectEmpty();
}
void CPenteDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPenteDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPenteDlg, CDialog)
//{{AFX_MSG_MAP(CPenteDlg)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_COMMAND(IDM_NEW, OnNew)
ON_COMMAND(IDM_SOUND, OnSound)
ON_COMMAND(IDM_BEST, OnBest)
ON_COMMAND(IDM_GRADE1, OnSkill1)
ON_COMMAND(IDM_GRADE2, OnSkill2)
ON_COMMAND(IDM_GRADE3, OnSkill3)
ON_COMMAND(IDM_EXIT, OnExit)
ON_COMMAND(IDM_ABOUT, OnAbout)
ON_COMMAND(IDM_HINT, OnHint)
ON_COMMAND(IDM_UNDO, OnUndo)
ON_COMMAND(IDM_LANGUAGE, OnLanguage)
ON_WM_SETCURSOR()
ON_WM_QUERYDRAGICON()
ON_WM_PALETTECHANGED()
ON_WM_QUERYNEWPALETTE()
ON_WM_SYSCOMMAND()
ON_WM_CONTEXTMENU()
ON_COMMAND(IDM_HELP_CONTEXT, OnHelp)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
///////////////////////////////////