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

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

?? mfc挖雷view.cpp

?? 一個挖雷的小程序
?? CPP
字號:
// MFC挖雷View.cpp : implementation of the CMFCView class
//

#include "stdafx.h"
#include "MFC挖雷.h"


#include "MFC挖雷Doc.h"
#include "MFC挖雷View.h"
#include "SetSize.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


int XDIVISIONS=9;
int YDIVISIONS=9;
int LEISHU=10;
/////////////////////////////////////////////////////////////////////////////
// CMFCView

IMPLEMENT_DYNCREATE(CMFCView, CView)

BEGIN_MESSAGE_MAP(CMFCView, CView)
	//{{AFX_MSG_MAP(CMFCView)
	ON_WM_LBUTTONDOWN()
	ON_WM_RBUTTONDOWN()
	ON_COMMAND(ID_FILE_NEW, OnFileNew)
	ON_COMMAND(ID_N1, OnN1)
	ON_COMMAND(ID_N2, OnN2)
	ON_COMMAND(ID_N3, OnN3)
	ON_COMMAND(IDM_SET, OnSet)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_WM_TIMER()
	ON_WM_CREATE()
	ON_WM_DESTROY()
	ON_WM_SIZE()
	ON_WM_LBUTTONUP()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMFCView construction/destruction
int CMFCView::xw=15;
int CMFCView::yw=15;
int CMFCView::leiconunt=20;
int DCLCount=10;
int Ctime=0;
CMFCView::CMFCView():xAdd(25),yAdd(40),m_bStart(FALSE),FaceNum(4),m_MouseDown(FALSE)
{
	// TODO: add construction code here
	
	Back.LoadBitmap(IDB_BACK);
	Back.GetObject(sizeof(BITMAP),&bk);

	Face.LoadBitmap(IDB_FACE);
	Face.GetObject(sizeof(BITMAP),&face);

	NumberPic.LoadBitmap(IDB_NUMBER);
	NumberPic.GetObject(sizeof(BITMAP),&Number);
	
}

CMFCView::~CMFCView()
{
	
}

BOOL CMFCView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMFCView drawing

void CMFCView::OnDraw(CDC* pDC)
{
	DrawNumber(DCLCount,CPoint((faceRect.right-faceRect.left)/4,yAdd/4+1));
	DrawFace(pDC,FaceNum,CPoint((faceRect.right-faceRect.left)/2,yAdd/4));
	DrawNumber(Ctime,CPoint((faceRect.right-faceRect.left)/2+(faceRect.right-faceRect.left)/6,yAdd/4+1));
	DrawBackGround();
	CMFCDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CDC MemDC;
	CBitmap *pOld;
	MemDC.CreateCompatibleDC(pDC);
	for (int i=0;i<XDIVISIONS;i++)
		for (int j=0;j<YDIVISIONS;j++)
		{
	
			switch(map.Map(i,j))
			{

			case 0:				
				pOld=MemDC.SelectObject(&Back);
				pDC->BitBlt(i*xw+xAdd,j*yw+yAdd,xw,yw,&MemDC,0,0,SRCCOPY);
				MemDC.SelectObject(&pOld);
				break;

			case 1:				
				pOld=MemDC.SelectObject(&Back);
				pDC->BitBlt(i*xw+xAdd,j*yw+yAdd,xw,yw,&MemDC,0,80,SRCCOPY);
				MemDC.SelectObject(&pOld);
				break;
			case 2:	
				if (map.GetCount(i,j)==0)			
				{
					pOld=MemDC.SelectObject(&Back);
					pDC->BitBlt(i*xw+xAdd,j*yw+yAdd,xw,yw,&MemDC,0,237,SRCCOPY);
					MemDC.SelectObject(&pOld);
				}
				else			
				{
					pOld=MemDC.SelectObject(&Back);
					pDC->BitBlt(i*xw+xAdd,j*yw+yAdd,xw,yw,&MemDC,0,237-map.GetCount(i,j)*16,SRCCOPY);
					MemDC.SelectObject(&pOld);
				}
				break;
			case 3:	
				pOld=MemDC.SelectObject(&Back);
				pDC->BitBlt(i*xw+xAdd,j*yw+yAdd,xw,yw,&MemDC,0,16,SRCCOPY);
				MemDC.SelectObject(&pOld);
				break;
			case 5:	
				pOld=MemDC.SelectObject(&Back);
				pDC->BitBlt(i*xw+xAdd,j*yw+yAdd,xw,yw,&MemDC,0,46,SRCCOPY);
				MemDC.SelectObject(&pOld);
				break;
			}		
		}
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CMFCView diagnostics

#ifdef _DEBUG
void CMFCView::AssertValid() const
{
	CView::AssertValid();
}

void CMFCView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CMFCDoc* CMFCView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMFCDoc)));
	return (CMFCDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMFCView message handlers

void CMFCView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CDC* pDC=GetDC();
	if (point.x>=facp.x && point.x<=facp.x+24 &&
		point.y>=facp.y && point.y<=facp.y+24)
	{
		SetNewGames();
		FaceNum=0;
		DrawFace(pDC,FaceNum,CPoint((faceRect.right-faceRect.left)/2,yAdd/4));
		ReleaseDC(pDC);
		return;
	}
	DrawFace(pDC,3,CPoint((faceRect.right-faceRect.left)/2,yAdd/4));
	ReleaseDC(pDC);
	if (m_bStart==FALSE) return;
	if (m_MouseDown==FALSE)
		m_MouseDown=TRUE;
	int x,y;

	x=(point.x-xAdd)/xw;
	if (x>=XDIVISIONS) 
	{
		CView::OnLButtonDown(nFlags, point);
		return;
	}
	y=(point.y-yAdd)/yw;
	if (y>=YDIVISIONS)
	{
		CView::OnLButtonDown(nFlags, point);
		return;
	}
	if (map.GetMap(x,y)==3)
	{
		
	}
	else if (map.GetLei(x,y)==1)
	{
		for (int i=0;i<XDIVISIONS;i++)
			for (int j=0;j<YDIVISIONS;j++)
				if (map.GetLei(i,j)==1)
				{
					map.SetMap(i,j,1);
					map.SetEnd(1);
				}
				FaceNum=2;
				map.SetMap(x,y,5);
				Invalidate();
				::MessageBox(NULL,"挖雷失敗","挖雷失敗",MB_OK);
				m_MouseDown=m_bStart=false;
	}
	else 
	{
		map.SetMap(x,y,2);
	}
	CView::OnLButtonDown(nFlags, point);
}

void CMFCView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	if (m_bStart==FALSE) return;
	int x,y;
	if (m_MouseDown==FALSE)
		m_MouseDown=TRUE;
	x=(point.x-xAdd)/xw;
	if (x>=XDIVISIONS) {
		CView::OnRButtonDown(nFlags, point);
		return;
	}
	y=(point.y-yAdd)/yw;
	if (y>=YDIVISIONS) {
		CView::OnRButtonDown(nFlags, point);
		return;
	}
	if (map.GetMap(x,y)==3)
	{
		map.SetMap(x,y,0);
		DCLCount++;
	}
	else if (map.GetMap(x,y)!=2)
	{
		map.SetMap(x,y,3);
		DCLCount--;
	}
	Invalidate();
	CView::OnRButtonDown(nFlags, point);
}

void CMFCView::SetNewGames()
{
	KillTimer(0);
	SetTimer(0,1000,NULL);
	map.InitMap();
	Invalidate();
	DCLCount=LEISHU;
	m_MouseDown=FALSE;
	Ctime=0;
	FaceNum=4;
	m_bStart=TRUE;
	AfxGetMainWnd()->SetWindowPos( NULL, 0, 0, 60+XDIVISIONS*xw, 
		110+YDIVISIONS*yw, SWP_NOMOVE | SWP_NOZORDER );
	GetClientRect(&faceRect);
}

void CMFCView::OnFileNew() 
{
	// TODO: Add your command handler code here
	SetNewGames();
}

void CMFCView::OnN1() 
{
	// TODO: Add your command handler code here
	XDIVISIONS=YDIVISIONS=9;
	LEISHU=10;
	SetNewGames();
}


void CMFCView::OnN2() 
{
	// TODO: Add your command handler code here
	XDIVISIONS=YDIVISIONS=16;
	LEISHU=40;
	SetNewGames();	
}

void CMFCView::OnN3() 
{
	// TODO: Add your command handler code here
	XDIVISIONS=30;
	YDIVISIONS=16;
	LEISHU=99;
	SetNewGames();
	
}

void CMFCView::OnSet() 
{
	// TODO: Add your command handler code here
	CSetSize set;
	set.m_col=XDIVISIONS;
	set.m_row=YDIVISIONS;
	set.m_count=LEISHU;

	if (set.DoModal()==IDOK)
	{
		XDIVISIONS=set.m_col;
		YDIVISIONS=set.m_row;
		LEISHU=set.m_count;

		SetNewGames();
	}
	GetClientRect(&faceRect);
}

void CMFCView::OnButton1() 
{
	// TODO: Add your control notification handler code here
	OnFileNew();
	
}

void CMFCView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if (m_MouseDown)
	{
		Ctime++;
		DrawNumber(Ctime,CPoint((faceRect.right-faceRect.left)/2+(faceRect.right-faceRect.left)/6,yAdd/4+1));
	}
	CView::OnTimer(nIDEvent);
}

int CMFCView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;

	// TODO: Add your specialized creation code here
	SetTimer(0,1000,NULL);

	
	m_bStart=TRUE;
	return 0;
}

void CMFCView::OnDestroy() 
{
	CView::OnDestroy();
	KillTimer(0);
	// TODO: Add your message handler code here
	
}

void CMFCView::OnSize(UINT nType, int cx, int cy) 
{
	GetClientRect(&faceRect);
	CView::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	
}

void CMFCView::DrawFace(CDC* pDC,int FaceNumber,CPoint pt)
{
	facp=pt;
	CDC MemDC;
	CBitmap *pOld;
	MemDC.CreateCompatibleDC(pDC);
	pOld=MemDC.SelectObject(&Face);
	pDC->BitBlt(pt.x,pt.y,24,24,&MemDC,0,FaceNumber*24,SRCCOPY);
	MemDC.SelectObject(&pOld);
}

void CMFCView::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CDC* pDC=GetDC();
	if (point.x>=facp.x && point.x<=facp.x+24 &&
		point.y>=facp.y && point.y<=facp.y+24)
	{
		SetNewGames();
		FaceNum=4;
		DrawFace(pDC,FaceNum,CPoint((faceRect.right-faceRect.left)/2,yAdd/4));
		ReleaseDC(pDC);
		return;
	}
	bool m_ok=true;
	for (int i=0;i<XDIVISIONS;i++)
		for (int j=0;j<YDIVISIONS;j++)
			if (map.GetMap(i,j)!=2 && map.GetLei(i,j)!=1)
				m_ok=false;
	if (m_ok==true && m_bStart==TRUE)
	{
		map.SetEnd(1);
		Invalidate();
		::MessageBox(NULL,"挖雷成功",("挖雷成功"),MB_OK);
		m_MouseDown=false;
		m_bStart=FALSE;
	}
	DrawFace(pDC,FaceNum,CPoint((faceRect.right-faceRect.left)/2,yAdd/4));
	ReleaseDC(pDC);
	Invalidate();
	CView::OnLButtonUp(nFlags, point);
}

void CMFCView::DrawNumber(int number, CPoint pt)
{
	int a[3];
	bool f=false;
	if (number<0)
	{
		f=true;
		number=-number;
	}
	a[0]=number/100;
	a[1]=(number-a[0]*100)/10;
	a[2]=number%10;

	CDC* pDC=GetDC();
	CDC MemDC;
	CBitmap *pOld;
	MemDC.CreateCompatibleDC(pDC);
	pOld=MemDC.SelectObject(&NumberPic);
	for (int i=0;i<3;i++)
	{
		if (f && i==0)
		{
			pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,0,SRCCOPY);
			continue;
		}
		switch(a[i])
		{
			case 0:	
				pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,253,SRCCOPY);
				break;
			case 1:
				pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,231,SRCCOPY);
				break;
			case 2:
				pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,207,SRCCOPY);
				break;
			case 3:
				pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,184,SRCCOPY);
				break;
			case 4:
				pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,162,SRCCOPY);
				break;
			case 5:
				pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,138,SRCCOPY);
				break;
			case 6:
				pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,115,SRCCOPY);
				break;
			case 7:
				pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,92,SRCCOPY);
				break;
			case 8:
				pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,69,SRCCOPY);
				break;
			case 9:
				pDC->BitBlt(pt.x+i*12,pt.y,12,22,&MemDC,0,46,SRCCOPY);
				break;
		}
	}
	MemDC.SelectObject(&pOld);
	ReleaseDC(pDC);

}

void CMFCView::DrawBackGround()
{
	CDC* pDC=GetDC();
	pDC->MoveTo(3,3);//192,192,192
	CBrush GBursh(RGB(192,192,192));

	//top
	CRect rect(7,2,faceRect.right,7);
	pDC->FillRect(&rect,&GBursh);
	
	//left
	rect.bottom=faceRect.bottom;
	rect.right=12;
	pDC->FillRect(&rect,&GBursh);

	//bottom
	rect.top=faceRect.bottom-7;
	rect.bottom=faceRect.bottom;
	rect.right=faceRect.right;
	pDC->FillRect(&rect,&GBursh);

	//right
	rect.top=2;
	rect.left=faceRect.right-7;
	pDC->FillRect(&rect,&GBursh);

	CBrush HBursh(RGB(128,128,128));

	//top
	CRect rect2(12,7,faceRect.right-7,8);
	pDC->FillRect(&rect2,&HBursh);
	
	//left
	rect.right=13;
	rect.bottom=faceRect.bottom;
	pDC->FillRect(&rect2,&HBursh);
	ReleaseDC(pDC);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费欧美日韩国产三级电影| 最好看的中文字幕久久| 中文字幕av不卡| 丝袜美腿亚洲一区| 91丝袜国产在线播放| 久久亚洲捆绑美女| 秋霞影院一区二区| 欧美色老头old∨ideo| 亚洲人成电影网站色mp4| 精品一区中文字幕| 91麻豆精品国产| 一区二区成人在线观看| 99久久99久久精品免费观看| 久久久久久久精| 国产一区二区在线免费观看| 欧美丝袜自拍制服另类| 亚洲男人的天堂av| 一本一本大道香蕉久在线精品| 国产日韩欧美一区二区三区乱码| 奇米一区二区三区av| 91精品国产美女浴室洗澡无遮挡| 亚洲乱码国产乱码精品精小说| 国产91在线|亚洲| 久久午夜免费电影| 国产一区二区三区四区五区美女| 欧美成人一区二区三区| 日韩国产精品91| 日韩西西人体444www| 青青草成人在线观看| 日韩三区在线观看| 韩日精品视频一区| 国产日本一区二区| 99免费精品视频| 亚洲精品欧美专区| 欧美亚洲国产一区二区三区va| 亚洲女厕所小便bbb| 欧美日韩中文字幕精品| 视频在线观看一区二区三区| 日韩欧美高清一区| 国产乱码精品一区二区三区忘忧草| 精品sm捆绑视频| 成人精品国产福利| 亚洲一区二区偷拍精品| 欧美精品一二三四| 国产一区二区三区综合| 亚洲欧洲一区二区在线播放| 91亚洲男人天堂| 亚洲成人免费av| 久久青草国产手机看片福利盒子 | 色哟哟在线观看一区二区三区| 国产精品福利一区| 欧美亚洲一区三区| 美女性感视频久久| 国产精品久久久久桃色tv| 在线看日本不卡| 久久99久久99| 国产精品久久久久影院| 在线亚洲+欧美+日本专区| 日韩国产欧美一区二区三区| 久久久久久久久久久黄色| 91久久精品一区二区三区| 麻豆专区一区二区三区四区五区| 亚洲国产精品成人综合| 色欧美日韩亚洲| 国产麻豆欧美日韩一区| 亚洲一区二区三区四区在线观看| 日韩一级二级三级精品视频| 波多野洁衣一区| 免费成人在线观看视频| 亚洲视频一区二区在线| 精品国产一区二区三区忘忧草 | 亚洲色图在线看| 日韩免费性生活视频播放| 91一区二区在线| 国产综合色产在线精品| 亚洲二区视频在线| 中文成人av在线| 精品久久人人做人人爱| 欧美亚洲禁片免费| 99精品在线免费| 国产不卡在线一区| 奇米在线7777在线精品| 亚洲一二三专区| 中文字幕欧美区| 欧美一级黄色录像| 在线观看日韩毛片| 成人免费观看男女羞羞视频| 久久疯狂做爰流白浆xx| 亚洲3atv精品一区二区三区| 亚洲视频网在线直播| 欧美激情中文字幕| 久久婷婷国产综合精品青草| 337p亚洲精品色噜噜噜| 91久久精品日日躁夜夜躁欧美| 国产经典欧美精品| 久久精品国产一区二区| 日韩精品午夜视频| 视频一区二区三区中文字幕| 艳妇臀荡乳欲伦亚洲一区| 亚洲国产高清在线观看视频| 欧美三区在线视频| 一级日本不卡的影视| 国产欧美日本一区视频| 日韩欧美美女一区二区三区| 欧美在线999| 在线视频亚洲一区| 91网站在线观看视频| av电影在线观看完整版一区二区| 国产精品白丝jk黑袜喷水| 国产综合色在线视频区| 狠狠色综合日日| 另类调教123区| 另类中文字幕网| 极品销魂美女一区二区三区| 国产综合一区二区| 国产精品 日产精品 欧美精品| 国产麻豆91精品| 波多野结衣在线aⅴ中文字幕不卡| 国产精品乡下勾搭老头1| 国产成人精品免费在线| 成人v精品蜜桃久久一区| caoporm超碰国产精品| 91精品1区2区| 欧美三级电影网| 欧美一区二区三区系列电影| 欧美精品一区视频| 国产欧美日韩在线| 亚洲精品v日韩精品| 亚洲成a人片综合在线| 麻豆91在线观看| 高清成人在线观看| 色综合色综合色综合| 欧美日韩五月天| 精品国产凹凸成av人导航| 中文av字幕一区| 亚洲午夜精品网| 日本成人在线看| 成人做爰69片免费看网站| 欧美性色黄大片| 精品国产一区二区精华| 综合分类小说区另类春色亚洲小说欧美 | www.亚洲免费av| 欧亚洲嫩模精品一区三区| 日韩一区二区精品在线观看| 久久精品在线观看| 亚洲网友自拍偷拍| 国产精品91xxx| 欧美视频在线一区| 国产丝袜在线精品| 丝袜美腿亚洲一区| 国产白丝精品91爽爽久久| 欧美在线免费观看亚洲| 亚洲精品在线免费播放| 亚洲与欧洲av电影| 春色校园综合激情亚洲| 555www色欧美视频| 国产精品福利一区| 韩国一区二区三区| 欧美日韩免费观看一区三区| 久久久亚洲高清| 青娱乐精品视频| 欧美私模裸体表演在线观看| 国产欧美精品在线观看| 日韩高清欧美激情| 欧美写真视频网站| 国产精品久久久久三级| 美女网站在线免费欧美精品| 色猫猫国产区一区二在线视频| 日韩欧美精品在线视频| 亚洲一区二区三区美女| 成人激情开心网| xfplay精品久久| 日本视频一区二区| 欧美在线综合视频| 国产精品久久久久久久久快鸭| 久久99精品国产麻豆婷婷洗澡| 欧美视频自拍偷拍| 亚洲欧美日韩国产手机在线 | 亚洲国产人成综合网站| 成人小视频在线| 久久久久久**毛片大全| 日本欧美一区二区| 欧美色综合天天久久综合精品| 国产精品国产精品国产专区不片| 奇米在线7777在线精品| 欧美日韩精品一区二区三区| 亚洲视频在线一区二区| 成人a级免费电影| 亚洲国产精品精华液ab| 国产激情一区二区三区四区 | 一区二区三区欧美| 色欧美日韩亚洲| 亚洲精品视频在线观看免费| av在线一区二区| 亚洲视频一区在线| 91亚洲精华国产精华精华液| 中文字幕精品一区二区精品绿巨人 | 久久精品欧美一区二区三区麻豆| 秋霞午夜鲁丝一区二区老狼| 欧美日韩国产乱码电影|