• 大小: 1MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-30
  • 语言: 其他
  • 标签: C++  windows  

资源简介

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

评论

共有 条评论