📄 monkey24.cpp
字号:
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 + -