Windows编程实现俄罗斯方块
来源:互联网 发布:北京淘宝培训班 编辑:程序博客网 时间:2024/05/17 23:14
主框架
#include "paint.h"#include "play.h"LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nCmdShow){//1.初始化窗口类 WNDCLASSEX wndClass = { 0 };wndClass.cbSize = sizeof(WNDCLASSEX);wndClass.cbClsExtra = 0;wndClass.cbWndExtra = 0;wndClass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);wndClass.hCursor = LoadCursor(NULL,IDC_ARROW);wndClass.hIcon = (HICON)::LoadImage(NULL,L"icon.ico",IMAGE_ICON,0,0,LR_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(hwnd,250,80,WINDOWS_HEIGHT,WINDOWS_WIDTH,true);ShowWindow(hwnd, nCmdShow);//UpdateWindow(hwnd);PlaySound(L"城之内ミサ-雪花",NULL,SND_ASYNC | SND_FILENAME |SND_LOOP);//5.消息循环MSG msg = { 0 };while (GetMessage(&msg,NULL,0,0)){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);}}
完整源代码和资源http://download.csdn.net/detail/zhangxiaoyu_sy/9889256
阅读全文
0 0
- Windows编程实现俄罗斯方块
- Windows编程 俄罗斯方块
- C++实现俄罗斯方块源码分享(Windows编程),有图形界面
- 俄罗斯方块Windows版本的实现!
- 俄罗斯方块Windows版本的实现!
- windows下实现win32俄罗斯方块练手,编程的几点心得
- Shell编程实现俄罗斯方块游戏(一步步详解)一
- OOP面向对象编程之俄罗斯方块项目实现过程
- windows API 俄罗斯方块
- Windows API 俄罗斯方块源码 -- 俄罗斯方块.cpp
- c语言俄罗斯方块编程
- 编程之美----俄罗斯方块
- 俄罗斯方块编程思想一
- 俄罗斯方块编程思想三
- window编程 - 俄罗斯方块
- 俄罗斯方块 编程代码
- win32编程之俄罗斯方块
- 编程娱乐之俄罗斯方块
- NAT的一个秘密
- tomcat工程中文乱码
- NLP学习笔记
- c语言编程技巧
- POJ 2785 4 Values whose Sum is 0 笔记
- Windows编程实现俄罗斯方块
- document对象
- 关于QTableWidget使用setCellWidget嵌入控件错位的问题
- LeapMotion Demo2
- request 方法详解
- LinkedHashMap特性 按插入和访问顺序排序
- 折半插入排序算法
- 程序员面试(0):关于i++,++i,printf的例题
- 前端判断img是否加载