資源簡介
windows編程實現俄羅斯方塊,多文件管理,思路清晰,實現簡單。

代碼片段和文件信息
#include?“paint.h“
#include?“play.h“
LRESULT?CALLBACK?WndProc(HWND?hwnd?UINT?message?WPARAM?wParam?LPARAM?lParam);
int?WINAPI?WinMain(HINSTANCE?hInstanceHINSTANCE?hPreInstanceLPSTR?lpCmdLineint?nCmdShow)
{
//1.初始化窗口類?
WNDCLASSEX?wndClass?=?{?0?};
wndClass.cbSize?=?sizeof(WNDCLASSEX);
wndClass.cbClsExtra?=?0;
wndClass.cbWndExtra?=?0;
wndClass.hbrBackground?=?(HBRUSH)GetStockobject(GRAY_BRUSH);
wndClass.hCursor?=?LoadCursor(NULLIDC_ARROW);
wndClass.hIcon?=?(HICON)::LoadImage(NULLL“icon.ico“IMAGE_ICON00LR_LOADFROMFILE?|LR_DEFAULTCOLOR);
wndClass.hIconSm?=?NULL;
wndClass.hInstance?=?hInstance;
wndClass.lpfnWndProc?=?WndProc;
wndClass.lpszClassName?=?L“Tetris?Game“; //窗口類名
wndClass.lpszMenuName?=?0;
wndClass.style?=?CS_HREDRAW?|?CS_VREDRAW;
//2.注冊窗口
if?(!RegisterClassEx(&wndClass))
{
return?-1;
}
//3.創建窗口
HWND?hwnd?=?CreateWindow(L“Tetris?Game“?WINDOWS_title?WS_OVERLAPPEDWINDOW?100?30?WINDOWS_HEIGHT?WINDOWS_WIDTH?NULL?NULL?hInstance?NULL);
//4.窗口的顯示?移動?更新
//MoveWindow(hwnd25080WINDOWS_HEIGHTWINDOWS_WIDTHtrue);
ShowWindow(hwnd?nCmdShow);
//UpdateWindow(hwnd);
PlaySound(L“城之內ミサ-雪花“NULLSND_ASYNC?|?SND_FILENAME?|SND_LOOP);
//5.消息循環
MSG?msg?=?{?0?};
while?(GetMessage(&msgNULL00))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//6.?窗口注銷
UnregisterClass(L“Tetris?Game“?wndClass.hInstance);????//程序準備結束?注銷窗口類
return?0;
}
LRESULT?CALLBACK?WndProc(HWND?hwnd?UINT?message?WPARAM?wParam?LPARAM?lParam)
{
int?id[2]?=?{?0?1?};
PAINTSTRUCT?paintStruct;
switch(message)
{
case?WM_CREATE: //只產生一次
//初始化數據
OnCreate();
break;
case?WM_TIMER: //定時器?
OnTimer(hwnd);
break;
case?WM_KEYDOWN:
switch?(wParam) //按鍵消息
{
case?VK_RETURN:
OnReturn(hwnd);
break;
case?VK_UP:
onchangeSqare(hwnd);
break;
case?VK_DOWN:
OnDown(hwnd);
break;
case?VK_LEFT:
OnLeft(hwnd);
break;
case?VK_RIGHT:
OnRight(hwnd);
break;
}
break;
case?WM_PAINT: //繪畫
BeginPaint(hwnd?&paintStruct);
OnPaint(hwnd);
EndPaint(hwnd?&paintStruct);
break;
case?WM_CLOSE:
if?(6?==?MessageBox(hwnd?L“確實要退出?“?L“Tetris?Game“?MB_YESNO)) ???// IDYES?==?6??IDNO?==?7
{
DestroyWindow(hwnd);
}
break;
case?WM_DESTROY:
KillTimer(hwnd?DEF_TIMER1);
Game_CleanUp(hwnd); //資源清理
PostQuitMessage(0);
break;
default:
return?DefWindowProc(hwnd?message?wParam?lParam);
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????132??2017-06-28?18:40??define.h
?????文件???????14702??2017-06-27?23:53??icon.ico
?????文件????????2601??2017-07-01?13:26??main.cpp
?????文件????????5631??2017-07-01?13:57??paint.cpp
?????文件?????????968??2017-07-01?13:52??paint.h
?????文件????????7772??2017-07-01?13:57??play.cpp
?????文件?????????811??2017-07-01?13:57??play.h
?????文件?????1757535??2017-06-29?17:46??城之內ミサ-雪花.wav
- 上一篇:ftp教學資源服務器 設計報告
- 下一篇:研究生綜合英語1修訂版答案
評論
共有 條評論