该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
ReadMapFile();
AboutMe();
return TRUE;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
switch (message)
{
case WM_KEYDOWN:
if(wParam == VK_ESCAPE)
{
SendMessage(hWnd, WM_COMMAND, 0, (LPARAM)hRestartBtn);
}
hdc = GetDC(hWnd);
man.GameLoop(map, wParam);
if(man.IsWin(map ))
{
man.m_direction = VK_DOWN;
man.m_numOfMove = 0;
InvalidateRect(hWnd, NULL, true);
paint.WinPaint( hdc);
PlaySound (TEXT ("Sound//Win.WAV"), NULL, SND_FILENAME | SND_ASYNC) ;
Sleep(2000);
int index = SendMessage(hMapList, CB_GETCURSEL, 0, 0);
int allIndex= SendMessage(hMapList, CB_GETCOUNT, 0, 0);
if( index + 1
{
char selFileName[100];
char mapName[100];
SendMessage(hMapList, CB_GETLBTEXT, index + 1, (LPARAM) (LPCSTR)selFileName);
sprintf(mapName, "map\\%s", selFileName);
map.ReadMap( mapName );
man.GetXAndYOfMan(map);
SetFocus(hWnd);
SendMessage(hMapList, CB_SETCURSEL, index + 1, (LPARAM) (LPCSTR)selFileName);
}
else if(index + 1 == allIndex)
{
char selFileName[100];
char mapName[100];
SendMessage(hMapList, CB_SETCURSEL, 0, (LPARAM) (LPCSTR)selFileName);
SendMessage(hMapList, CB_GETLBTEXT, 0, (LPARAM) (LPCSTR)selFileName);
sprintf(mapName, "map\\%s", selFileName);
map.ReadMap( mapName );
man.GetXAndYOfMan(map);
SetFocus(hWnd);
}
else
{
man.Restart(map);
man.GetXAndYOfMan(map);
SetFocus(hWnd);
}
}
ReleaseDC(hWnd,hdc);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
if((HWND) lParam == hRestartBtn)
{
if(MessageBox(hWnd, "真的要重新开始吗?", "提示", MB_YESNO) ==IDYES)
{
InvalidateRect(hWnd, NULL, true);
man.Restart(map);
man.GetXAndYOfMan(map);
SetFocus(hWnd);
}
}
if((HWND) lParam == hPreviousBtn)
{
man.Previous(map);
SetFocus(hWnd);
}
if((HWND) lParam ==hOpenMapBtn)
{
int index = SendMessage(hMapList, CB_GETCURSEL, 0, 0);
if( index != -1 )
{
char selFileName[100];
char mapName[100];
memset(mapName, 0, 100);
SendMessage(hMapList, CB_GETLBTEXT, index, (LPARAM) (LPCSTR)selFileName);
sprintf(mapName, "map\\%s", selFileName);
map.ReadMap( mapName );
SendMessage(hWnd, WM_COMMAND, 0, (LPARAM)hRestartBtn);
SetFocus(hWnd);
}
}
if((HWND) lParam ==hOpenMapEditBtn)
{
if(WinExec("推箱子地图制作.exe", SW_SHOW) == ERROR_FILE_NOT_FOUND )
{
MessageBox(hWnd, "找不到地图编辑器,请确认和本程序在同个目录.", "错误提示", MB_OK | MB_ICONERROR);
}
}
if((HWND) lParam ==hDeleteMapBtn)
{
if(MessageBox(hWnd, "真的要删除当前选择的这个地图吗?", "提示", MB_YESNO ) ==IDYES)
{
DeleteMapFile();
SetFocus(hWnd);
}
}
if( HIWORD(wParam) == CBN_SELCHANGE || HIWORD(wParam) ==CBN_KILLFOCUS)
{
SetFocus(hWnd);
}
if( HIWORD(wParam) ==CBN_SETFOCUS)
{
ReadMapFile();
}
break;
case WM_RBUTTONDOWN:
man.Previous(map);
break;
case WM_CLOSE:
if(MessageBox(hWnd, "真的要退出游戏吗?", "提示", MB_YESNO ) ==IDYES)
{
ExitProcess(0);
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}