⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monkey24.cpp

📁 简易扫雷
💻 CPP
📖 第 1 页 / 共 2 页
字号:
     switch (message)
     {
     case WM_CREATE:
		 srand(GetTickCount());
		 BombInfoMatrix=NULL;
		 
		 GetSystemDirectory(szProfilePath,MAX_PATH);
		 lstrcat(szProfilePath,TEXT("\\WuzgMine.ini"));
		 M24_LoadAllBmp();
		 GetGameSetting();
		 InitAllBombInfo(g_nGameLev);	 
		 AdjustWndRect(hwnd);

		 hMenu=GetMenu(hwnd);
		 if(g_nGameLev==TYPE_MIDDLE)
			CheckMenuItem(hMenu, IDM_MIDDLE, MF_CHECKED) ;
		 else if(g_nGameLev==TYPE_MASTER)
			CheckMenuItem(hMenu, IDM_MASTER, MF_CHECKED) ;
		 else if(g_nGameLev==TYPE_USER)
			CheckMenuItem(hMenu, IDM_USERLEV, MF_CHECKED) ;
		 else
			CheckMenuItem(hMenu, IDM_BEGINNER, MF_CHECKED) ;

		 g_nTimecount=0;
		 bTimeSetted=FALSE;
		 nFaceType=FACE_NORMAL;
		 bCap=FALSE;
         return 0;	
    case WM_PAINT:
         hdc=BeginPaint(hwnd,&ps);

		 DrawBombCount(hdc,g_nBombCount-nMarkedCount);
		 DrawTimeCount(hdc,g_nTimecount);
		 DrawFace(hdc,nFaceType);
		 DrawTheMap(hdc);
         EndPaint(hwnd,&ps);
         return 0 ;
	case WM_MOUSEMOVE:
		 break;
	case WM_LBUTTONDOWN:
		downPt.x=LOWORD(lParam);
		downPt.y=HIWORD(lParam);

		if(PtInRect(&rcFace,downPt))
		{
			hdc1=GetDC(hwnd);
			DrawFace(hdc1,FACE_PRESS);
			ReleaseDC(hwnd,hdc1);
			SetCapture(hwnd);
			bCap=TRUE;
		}
		else if(PtInRect(&rcMap,downPt)&&g_bPlaying)
		{
			hdc1=GetDC(hwnd);
			DrawFace(hdc1,FACE_ALERT);
			ReleaseDC(hwnd,hdc1);
			SetCapture(hwnd);
			bCap=TRUE;
		}

		break;
	case WM_LBUTTONUP:
		upPt.x=LOWORD(lParam);
		upPt.y=HIWORD(lParam);

		if(PtInRect(&rcFace,upPt))
		{
			hdc1=GetDC(hwnd);
			DrawFace(hdc1,FACE_NORMAL);
			ReleaseDC(hwnd,hdc1);
			SendMessage(hwnd,WM_COMMAND,IDM_NEW,0);
		}
		else
		{
			if(g_bPlaying)
			{
				if(bTimeSetted==FALSE)
				{
					SetCountTimer(hwnd);
					bTimeSetted=TRUE;
				}
				if(OnLButtonUp((upPt.x-MAPINITX)/BLOCKBMPCX,(upPt.y-MAPINITY)/BLOCKBMPCY))
				{
					InvalidateRect(hwnd,NULL,FALSE);;
				}
				if(g_bPlaying==FALSE)
				{
					KillTimer(hwnd,1);
					bTimeSetted=FALSE;
					hdc1=GetDC(hwnd);
					nFaceType=FACE_LOST;
					DrawFace(hdc1,FACE_LOST);
					ReleaseDC(hwnd,hdc1);
				}
			}
		}
		if(bCap)
		{
			hdc1=GetDC(hwnd);
			DrawFace(hdc1,FACE_NORMAL);
			ReleaseDC(hwnd,hdc1);
			ReleaseCapture();
			bCap=FALSE;
		}
		 break;
	case WM_RBUTTONUP:
		if(g_bPlaying)
		{
			if(OnRButtonUp((LOWORD(lParam)-MAPINITX)/BLOCKBMPCX,(HIWORD(lParam)-MAPINITY)/BLOCKBMPCY,hwnd))
			{
				g_bPlaying=FALSE;
				KillTimer(hwnd,1);
				bTimeSetted=FALSE;
				hdc1=GetDC(hwnd);
				nFaceType=FACE_WIN;
				DrawFace(hdc1,FACE_WIN);
				ReleaseDC(hwnd,hdc1);
				if(g_nGameLev!=TYPE_USER)
				{
					if(g_nGameLev==TYPE_BEGINNER)
						hScore=GetPrivateProfileInt(TEXT("SCORE"),TEXT("Score1"),999,szProfilePath);
					else if(g_nGameLev==TYPE_MIDDLE)
						hScore=GetPrivateProfileInt(TEXT("SCORE"),TEXT("Score2"),999,szProfilePath);
					else if(g_nGameLev==TYPE_MASTER)
						hScore=GetPrivateProfileInt(TEXT("SCORE"),TEXT("Score3"),999,szProfilePath);
					else
						hScore=0;
					if(g_nTimecount<hScore)
					{
						DialogBox((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE), MAKEINTRESOURCE(IDD_DLGNAME),hwnd,NameDlgProc);
						DialogBox((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE), MAKEINTRESOURCE(IDD_DLGSCORE),hwnd,ScoreDlgProc);
					}
				}
			}
		}
		break;
	case WM_COMMAND:
		  switch(LOWORD(wParam))
		  {
		  case IDM_NEW:
			 InitBombInfoMatrix();
			 nMarkedCount=0;
		     nRightMarkedCount=0;
		     g_bPlaying=TRUE;
			 nFaceType=FACE_NORMAL;

			 InvalidateRect(hwnd,NULL,FALSE);
			 g_nTimecount=0;
			 //SetCountTimer(hwnd);
		  break;
		  case IDM_EXIT:
			  PostQuitMessage(0);
		  break;
		  case IDM_ABOUT:
			  DialogBox((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE), MAKEINTRESOURCE(IDD_DLGABOUT),hwnd,AboutDlgProc);
		  break;
		  case IDM_SCORE:
			  DialogBox((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE), MAKEINTRESOURCE(IDD_DLGSCORE),hwnd,ScoreDlgProc);
		  break;
		  case IDM_BEGINNER:
			 if(!GetMenuState(hMenu,LOWORD (wParam),MF_CHECKED))
			 {
				CheckMenuItem(hMenu, LOWORD (wParam), MF_CHECKED) ;
				CheckMenuItem(hMenu, IDM_MIDDLE, MF_UNCHECKED) ;
				CheckMenuItem(hMenu, IDM_MASTER, MF_UNCHECKED) ;
				CheckMenuItem(hMenu, IDM_USERLEV, MF_UNCHECKED) ;
				InitAllBombInfo(TYPE_BEGINNER);
				g_nGameLev=TYPE_BEGINNER;
				nFaceType=FACE_NORMAL;
				AdjustWndRect(hwnd);
				InvalidateRect(hwnd,NULL,FALSE);
				//SetCountTimer(hwnd);

			 }
			 break;
		  case IDM_MIDDLE:
			 if(!GetMenuState(hMenu,LOWORD (wParam),MF_CHECKED))
			 {
				CheckMenuItem(hMenu, LOWORD (wParam), MF_CHECKED) ;
				CheckMenuItem(hMenu, IDM_BEGINNER, MF_UNCHECKED) ;
				CheckMenuItem(hMenu, IDM_MASTER, MF_UNCHECKED) ;
				CheckMenuItem(hMenu, IDM_USERLEV, MF_UNCHECKED) ;
				nFaceType=FACE_NORMAL;
				InitAllBombInfo(TYPE_MIDDLE);
				g_nGameLev=TYPE_MIDDLE;
				AdjustWndRect(hwnd);
				InvalidateRect(hwnd,NULL,FALSE);
				//SetCountTimer(hwnd);

			 }
			 break;
		  case IDM_MASTER:
			 if(!GetMenuState(hMenu,LOWORD (wParam),MF_CHECKED))
			 {
				CheckMenuItem(hMenu, LOWORD (wParam), MF_CHECKED) ;
				CheckMenuItem(hMenu, IDM_BEGINNER, MF_UNCHECKED) ;
				CheckMenuItem(hMenu, IDM_MIDDLE, MF_UNCHECKED) ;
				CheckMenuItem(hMenu, IDM_USERLEV, MF_UNCHECKED) ;
				nFaceType=FACE_NORMAL;
				InitAllBombInfo(TYPE_MASTER);
				g_nGameLev=TYPE_MASTER;
				AdjustWndRect(hwnd);
				InvalidateRect(hwnd,NULL,FALSE);
				//SetCountTimer(hwnd);
			 }
			 break;
		  case IDM_USERLEV:
			 if(!GetMenuState(hMenu,LOWORD (wParam),MF_CHECKED))
			 {
				CheckMenuItem(hMenu, LOWORD (wParam), MF_CHECKED) ;
				CheckMenuItem(hMenu, IDM_BEGINNER, MF_UNCHECKED) ;
				CheckMenuItem(hMenu, IDM_MIDDLE, MF_UNCHECKED) ;
				CheckMenuItem(hMenu, IDM_MASTER, MF_UNCHECKED) ;

				if(DialogBox((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE), MAKEINTRESOURCE(IDD_DLGUSER),hwnd,UserDlgProc)==0)
				{
					InitAllBombInfo(TYPE_USER);
					g_nGameLev=TYPE_USER;
					nFaceType=FACE_NORMAL;
					AdjustWndRect(hwnd);
					InvalidateRect(hwnd,NULL,FALSE);
					//SetCountTimer(hwnd);
				}
			 }
			 else
			 {
				if(DialogBox((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE), MAKEINTRESOURCE(IDD_DLGUSER),hwnd,UserDlgProc)==0)
				{
					InitAllBombInfo(TYPE_USER);
					g_nGameLev=TYPE_USER;
					nFaceType=FACE_NORMAL;
					AdjustWndRect(hwnd);
					InvalidateRect(hwnd,NULL,FALSE);
					//SetCountTimer(hwnd);
				}
			 }
			break;
		  }
		  return 0;

	case WM_TIMER:
		
		 hdc1=GetDC(hwnd);
		 g_nTimecount=min(999,g_nTimecount+1);
		 DrawTimeCount(hdc1,g_nTimecount);
		 ReleaseDC(hwnd,hdc1);
		 return 0;
    case WM_DESTROY:
		 FreeBombInfoMatrix();
         PostQuitMessage(0);
         return 0 ;
    }
    return DefWindowProc (hwnd, message, wParam, lParam) ;
}
///////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -