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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? shududlg.cpp

?? CreateData.cpp 文件是產生9x9矩形的數字算法 ShuDu.java 文件只是為了更好的理解數獨一個文件
?? CPP
字號:
// ShuDuDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ShuDu.h"
#include "ShuDuDlg.h"
#include "CreateData.h"
#include <stdlib.h>

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

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CShuDuDlg dialog

CShuDuDlg::CShuDuDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CShuDuDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CShuDuDlg)
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CShuDuDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CShuDuDlg)
	DDX_Control(pDX, IDC_GAMENOTE, m_Note);
	DDX_Control(pDX, IDC_SHOWSELNUM, m_ShowSelNumBtn);
	DDX_Control(pDX, IDC_LEVELNORMAL, m_LevelNormalBtn);
	DDX_Control(pDX, IDC_LEVELHARD, m_LevelHardBtn);
	DDX_Control(pDX, IDC_STARTNEWGAME, m_StartBtn);
	DDX_Control(pDX, IDC_SAVEGAME, m_SaveBtn);
	DDX_Control(pDX, IDC_RESTART, m_RestartBtn);
	DDX_Control(pDX, IDC_MAINMENU, m_MainRect);
	DDX_Control(pDX, IDC_OPTION, m_OptionRect);
	DDX_Control(pDX, IDC_LEVELEASY, m_LevelEasyBtn);
	DDX_Control(pDX, IDC_EXIT, m_ExitBtn);
	DDX_Control(pDX, IDC_DISPLAYTRACK, m_ShowTrackBtn);
	DDX_Control(pDX, IDC_DISPLAYNUM, m_ShowNumBtn);
	DDX_Control(pDX, IDC_LEVELGROUP, m_LevelRect);
	DDX_Control(pDX, IDC_UNDO, m_UndoBtn);
	DDX_Control(pDX, IDC_SHUDU, m_sdCtrl);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CShuDuDlg, CDialog)
	//{{AFX_MSG_MAP(CShuDuDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_STARTNEWGAME, OnStartnewgame)
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	ON_WM_MOUSEMOVE()
	ON_BN_CLICKED(IDC_UNDO, OnUndo)
	ON_BN_CLICKED(IDC_SAVEGAME, OnSavegame)
	ON_BN_CLICKED(IDC_RESTART, OnRestart)
	ON_BN_CLICKED(IDC_LEVELNORMAL, OnLevelnormal)
	ON_BN_CLICKED(IDC_LEVELHARD, OnLevelhard)
	ON_BN_CLICKED(IDC_LEVELEASY, OnLeveleasy)
	ON_BN_CLICKED(IDC_EXIT, OnExit)
	ON_BN_CLICKED(IDC_DISPLAYTRACK, OnDisplaytrack)
	ON_BN_CLICKED(IDC_DISPLAYNUM, OnDisplaynum)
	ON_BN_CLICKED(IDC_SHOWSELNUM, OnShowselnum)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CShuDuDlg message handlers

BOOL CShuDuDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	

	MoveWindow(0,0,700,600,FALSE);
	CenterWindow();
	m_sdCtrl.MoveWindow(20,20,505,445,FALSE);
	m_UndoBtn.MoveWindow(530,60,80,30,FALSE);

	m_MainRect.MoveWindow(530,15,150,170);
	m_StartBtn.MoveWindow(540,30,130,25);
	m_RestartBtn.MoveWindow(540,60,130,25);
	m_UndoBtn.MoveWindow(540,90,130,25);
	m_SaveBtn.MoveWindow(540,120,130,25);
	m_ExitBtn.MoveWindow(540,150,130,25);

	m_OptionRect.MoveWindow(530,215,150,110);
	m_ShowNumBtn.MoveWindow(540,230,130,25);
	m_ShowTrackBtn.MoveWindow(540,260,130,25);
	m_ShowSelNumBtn.MoveWindow(540,290,130,25);
	m_ShowNumBtn.SetCheck(0);
	m_ShowTrackBtn.SetCheck(1);
	m_ShowSelNumBtn.SetCheck(1);

	m_LevelRect.MoveWindow(530,355,150,110);
	m_LevelEasyBtn.MoveWindow(540,370,130,25);
	m_LevelNormalBtn.MoveWindow(540,400,130,25);
	m_LevelHardBtn.MoveWindow(540,430,130,25);
	
	m_LevelNormalBtn.SetCheck(1);

	m_Note.MoveWindow(20,475,660,95);
	CString str;
	str.LoadString(IDS_ABOUTGAME);
	m_Note.SetWindowText(str);
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CShuDuDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CShuDuDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	if (IsIconic())
	{

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}


// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CShuDuDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CShuDuDlg::OnStartnewgame() 
{
	// TODO: Add your control notification handler code here
	CreateShuDuMetrix(m_GameData);
	m_sdCtrl.StartGame(m_GameData);
}


			


void CShuDuDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	CDialog::OnLButtonDown(nFlags, point);
}

void CShuDuDlg::OnLButtonUp(UINT nFlags, CPoint point) 
{
	CDialog::OnLButtonUp(nFlags, point);
}

void CShuDuDlg::OnMouseMove(UINT nFlags, CPoint point) 
{
	CDialog::OnMouseMove(nFlags, point);
}

void CShuDuDlg::OnUndo() 
{
	// TODO: Add your control notification handler code here
	m_sdCtrl.UnDo();
}

void CShuDuDlg::OnSavegame() 
{
	CFileDialog fd(TRUE,"txt",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT|OFN_NOCHANGEDIR,
		"Text File(*.txt)|*.txt||",this);
	if(fd.DoModal() == IDOK)
	{
		CString strFile = fd.GetPathName();
		FILE *fp = fopen(strFile,"wt");
		if(fp != NULL)
		{
			for (int i=0; i<9;i++)
			{
				for(int j=0;j<9;j++)
				{
					fprintf(fp,"%d  ",m_GameData[i][j]);
				}
				fprintf(fp,"\n");
			}
			fclose(fp);
		}
	}

}

void CShuDuDlg::OnRestart() 
{
	m_sdCtrl.StartGame(m_GameData);
}

void CShuDuDlg::OnLevelnormal() 
{
	m_LevelEasyBtn.SetCheck(0);
	m_LevelHardBtn.SetCheck(0);
	m_LevelNormalBtn.SetCheck(1);
	if(	CurrentLevel == 1)return;
	else
	{
		CurrentLevel = 1;
		m_sdCtrl.SetGameLevel(1);
	}
}

void CShuDuDlg::OnLevelhard() 
{
	m_LevelNormalBtn.SetCheck(0);
	m_LevelEasyBtn.SetCheck(0);
	if(	CurrentLevel == 2)return;
	else
	{
		CurrentLevel = 2;
		m_sdCtrl.SetGameLevel(2);
	}
}

void CShuDuDlg::OnLeveleasy() 
{
	m_LevelNormalBtn.SetCheck(0);
	m_LevelHardBtn.SetCheck(0);
	if(	CurrentLevel == 0)return;
	else
	{
		CurrentLevel = 0;
		m_sdCtrl.SetGameLevel(0);
	}
}

void CShuDuDlg::OnExit() 
{
	EndDialog(0);
}

void CShuDuDlg::OnDisplaytrack() 
{
	m_sdCtrl.EnableAreas(m_ShowTrackBtn.GetCheck());
}

void CShuDuDlg::OnDisplaynum() 
{
	m_sdCtrl.EnableNumbers(m_ShowNumBtn.GetCheck());
}

void CShuDuDlg::OnShowselnum() 
{
	m_sdCtrl.EnableSelectNum(m_ShowSelNumBtn.GetCheck());
}

BOOL CShuDuDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(pMsg->message == WM_GAMECOMPLETED)
	{
		MessageBox("恭喜過關");
	}
	return CDialog::PreTranslateMessage(pMsg);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品国产97久久久久久久久久久久| 有坂深雪av一区二区精品| 日韩黄色片在线观看| 欧美天堂一区二区三区| 亚洲成人自拍网| 日韩欧美一级二级三级久久久| 蜜臀av一区二区在线观看| 精品成人私密视频| 不卡视频免费播放| 亚洲国产视频一区| 91精品国产综合久久久久久久| 日韩影院免费视频| 久久这里只精品最新地址| zzijzzij亚洲日本少妇熟睡| 亚洲综合色在线| 欧美成人乱码一区二区三区| 国产91丝袜在线播放| 亚洲日本一区二区三区| 欧美电影在哪看比较好| 国产盗摄视频一区二区三区| 亚洲欧美乱综合| 精品日韩在线一区| 94色蜜桃网一区二区三区| 日韩精品电影一区亚洲| 欧美激情艳妇裸体舞| 欧美三级韩国三级日本三斤| 韩国欧美国产1区| 亚洲精品美腿丝袜| 精品国产三级电影在线观看| 91网站在线观看视频| 免费成人av在线播放| 中文字幕一区二区三区精华液| 9191成人精品久久| 99精品视频在线播放观看| 看片的网站亚洲| 亚洲一区二区三区中文字幕 | 色猫猫国产区一区二在线视频| 日韩av成人高清| 成人欧美一区二区三区在线播放| 欧美一级久久久| 91精品1区2区| 成人av在线网| 久久国产生活片100| 亚洲一区在线电影| 国产精品丝袜在线| 日韩精品一区二区三区中文不卡| 在线免费观看视频一区| 国产在线看一区| 日av在线不卡| 午夜伊人狠狠久久| 亚洲欧美日韩系列| 国产精品久久三区| 国产亚洲短视频| wwwwxxxxx欧美| 在线观看91av| 欧美性高清videossexo| 99re这里只有精品首页| 成人午夜激情在线| 精品在线观看免费| 青青草原综合久久大伊人精品| 亚洲午夜久久久久久久久电影院| 国产精品国产三级国产aⅴ入口| 久久精品视频一区| 久久久久久久久免费| 日韩欧美国产综合在线一区二区三区| 91黄色免费看| 欧美丝袜第三区| 欧美三级日本三级少妇99| 在线免费av一区| 91日韩在线专区| 色妹子一区二区| 色欧美乱欧美15图片| 欧美中文字幕一二三区视频| 色综合久久99| 欧美视频在线一区二区三区| 欧美中文字幕一区二区三区亚洲| 色偷偷成人一区二区三区91| 91在线高清观看| 91免费视频网址| 91精品办公室少妇高潮对白| 欧美无砖专区一中文字| 7777精品久久久大香线蕉| 在线播放一区二区三区| 欧美理论片在线| 日韩免费观看2025年上映的电影| 欧美精品一区二区三区高清aⅴ| 精品国产乱码久久久久久浪潮| 久久精品亚洲国产奇米99| 国产欧美视频一区二区| 最新热久久免费视频| 一区二区三区国产豹纹内裤在线| 亚洲国产精品久久人人爱| 日韩精品一二区| 国产精品夜夜嗨| 97se狠狠狠综合亚洲狠狠| 欧美日本国产视频| 精品国产91久久久久久久妲己| 久久精品在线免费观看| 亚洲色欲色欲www| 午夜精品久久久久影视| 久久精品国产99久久6| 成人黄色在线视频| 欧美性受xxxx黑人xyx| 精品乱人伦小说| 一区在线观看视频| 天天操天天色综合| 国产suv精品一区二区6| 欧美亚洲免费在线一区| 久久无码av三级| 亚洲女与黑人做爰| 久久国产精品免费| 色老汉av一区二区三区| 欧美不卡视频一区| 专区另类欧美日韩| 久久精品99久久久| 色狠狠综合天天综合综合| 在线播放视频一区| 亚洲欧美在线高清| 国模一区二区三区白浆| 在线观看日韩高清av| 国产亚洲一区字幕| 舔着乳尖日韩一区| 不卡欧美aaaaa| 欧美r级在线观看| 亚洲综合激情网| 国产91清纯白嫩初高中在线观看| 欧美日韩黄色一区二区| 国产精品人妖ts系列视频| 日产国产高清一区二区三区| 99久久免费视频.com| 精品理论电影在线| 亚洲国产aⅴ天堂久久| av激情成人网| 精品99一区二区| 日韩高清在线不卡| 一本久久精品一区二区| 国产亚洲欧洲997久久综合| 亚洲国产精品一区二区久久恐怖片| 成人性生交大片免费看视频在线| 91精品国产91久久综合桃花 | 欧美特级限制片免费在线观看| 国产日韩欧美一区二区三区乱码| 天堂久久一区二区三区| 99久久久精品免费观看国产蜜| 久久先锋影音av鲁色资源| 日本中文字幕一区二区有限公司| 91国产免费观看| 国产精品的网站| 成人性色生活片| 国产视频911| 国产在线观看免费一区| 欧美一级久久久久久久大片| 五月天激情综合网| 欧美图片一区二区三区| 亚洲激情自拍视频| 色噜噜狠狠色综合中国| 亚洲色图欧洲色图婷婷| 波多野结衣亚洲一区| 欧美国产一区在线| 国产精品一区二区久激情瑜伽| 精品三级在线观看| 久久精品久久久精品美女| 欧美一级视频精品观看| 免费成人在线网站| 日韩视频一区在线观看| 免费国产亚洲视频| 日韩片之四级片| 日本成人在线一区| 欧美一级理论性理论a| 久久99国产精品久久99| 久久亚洲精品国产精品紫薇| 激情丁香综合五月| 国产日韩欧美a| 99久久婷婷国产| 亚洲一区二区三区精品在线| 欧美日韩国产乱码电影| 日本在线不卡视频| 精品国产免费人成电影在线观看四季| 久草热8精品视频在线观看| 久久综合狠狠综合久久激情| 国产99一区视频免费| 亚洲日本欧美天堂| 欧美日韩一级二级| 老司机一区二区| 久久精品一区八戒影视| 91在线观看美女| 天堂午夜影视日韩欧美一区二区| 欧美mv和日韩mv的网站| 粉嫩久久99精品久久久久久夜| 亚洲卡通欧美制服中文| 555夜色666亚洲国产免| 国产激情一区二区三区四区| 亚洲视频每日更新| 在线不卡中文字幕播放| 国产在线不卡一区| 亚洲女人的天堂| 精品久久久久一区| heyzo一本久久综合| 日韩激情一区二区| 日本一区二区视频在线观看|