资源简介
c++.win32.扫雷游戏代码
win32编程入门学习代码
有助于了解windows编程原理
代码片段和文件信息
#include
#include
#include
#include “resource.h“ // 菜单资源头文件
#define SHADOW_WIDTH1 1 //阴影宽度
#define SHADOW_WIDTH2 2
#define SHADOW_WIDTH3 3
#define BORDER 8 //边界的宽度
#define BOX_WIDTH 20//box的宽度
#define BOX_HEIGHT 20 //box的高度
#define RESERVED_AREA 32 //保留区高度
//******************************
//自定义的函数声明
//******************************
LRESULT CALLBACK WndProc (HWND UINT WPARAM LPARAM) ;
void DrawBorder(HDC hdcint xint yint widthint heightint BorderWidthCOLORREF &color1COLORREF &color2bool WTop);
void AutoOpenBoxes(HDC &hdcint iint j);
void drawRect(HDC &hdcint xint y);
bool allRoundIsOpened(int rowint col);
void InitBox();
void UpdateTheWindow(HWND &hwndint rowsint colsint mineNO);
void ComputeRoundMineNo();
void RandomSetMines();
//**************************************
//结构体BoxroundMineNO表示周围雷的个数
//containMine表示是否里面是否有雷,
//isOpened表示box是否已经打开
//**************************************
static HMENU hMenu;
struct Box
{
int roundMineNO;
bool containMine;
bool isOpened;
};
static int mineNumber;
static int ROWS; //行数
static int COLS; //列数
static int iSM_BorderX;
static int iSM_BorderY;
static int iSM_CaptionY;
static int iSM_MenuY;
static Box **box;
static int ijnumberOpened;
static RECT mineRect;
//********
//main函数
//********
int WINAPI WinMain (HINSTANCE hInstance HINSTANCE hPrevInstance
PSTR szCmdLine int iCmdShow)
{
static TCHAR szAppName[] = TEXT (“SineWave“) ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;
//地雷的个数,此处似乎多余,因为下面又赋值成了10个
mineNumber = 5;
//可能有雷的区域为10 X 10个
ROWS = 10; COLS = 10;
mineNumber = 10;
//新建COLS雷区,每行这些雷区列
box = new Box* [COLS];
//每列这些行
for(int k=0;k box[k] = new Box[ROWS];
//获取窗口边界的宽度、高度、标题区域的高度、菜单的高度等信息,可能翻译不太准确,请查msdn
iSM_BorderX = GetSystemMetrics(SM_CXBORDER);
iSM_BorderY = GetSystemMetrics(SM_CYBORDER);
iSM_CaptionY = GetSystemMetrics(SM_CYCAPTION);
iSM_MenuY = GetSystemMetrics(SM_CYMENU);
int cx = BOX_WIDTH * COLS + 2 * SHADOW_WIDTH3 + 2 * SHADOW_WIDTH2 + 2 * iSM_BorderX + 2 * BORDER;
int cy = BOX_HEIGHT * ROWS + 2 * SHADOW_WIDTH3 + 4 * SHADOW_WIDTH2 + 2 * iSM_BorderY + 3 * BORDER + RESERVED_AREA+iSM_CaptionY+iSM_MenuY;
mineRect.left = SHADOW_WIDTH3+BORDER+SHADOW_WIDTH2;
mineRect.right =mineRect.left + BOX_WIDTH * COLS;
mineRect.top = SHADOW_WIDTH3+2*BORDER+RESERVED_AREA+3*SHADOW_WIDTH2;
mineRect.bottom = mineRect.top + BOX_HEIGHT * ROWS;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc= WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL IDI_APPLICATION) ;
wndclass.hCursor =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3990 2009-09-05 19:15 扫雷\3.dsp
文件 527 2009-09-05 17:59 扫雷\3.dsw
文件 48640 2009-09-10 09:59 扫雷\3.opt
文件 750 2009-09-10 09:57 扫雷\3.plg
文件 867 2009-09-14 10:41 扫雷\3.sln
..A..H. 8704 2009-09-14 10:42 扫雷\3.suo
文件 5843 2009-09-12 20:35 扫雷\3.vcproj
文件 1425 2009-09-14 10:42 扫雷\3.vcproj.quande-notepad.quande.user
文件 738 2009-09-05 18:01 扫雷\resource.h
文件 17204 2009-09-05 19:16 扫雷\sc
文件 2033 2009-09-05 18:01 扫雷\sc
文件 18644 2009-09-12 09:06 扫雷\winmain.cpp
目录 0 2012-08-16 09:52 扫雷\Debug
目录 0 2012-08-16 09:52 扫雷
----------- --------- ---------- ----- ----
109365 14
相关资源
- 通讯录c++实现 功能:添加、删除、查
- 在VC++6.0中给对话框设置背景色或者背
- C++ MongoDB 连接池代码实现
- C++编写的后方交会程序
- BCB 调用WebService方法及常见问题排查
- fortran调用C++ dll
- 共享单车管理系统 c++
- QT C++ 多线程支持多串口通信
- 达内c++pptThe C++ Programming Language
- C++Test9.5的插件版合共工具
- 射线追踪vc++程序
- 东北大学C++实验
- vc++单文档多视图
- D算法的C++实现
- 基于C/C++的局域网聊天室源码
- 线程池 C++
- BezierCurve 贝塞尔曲线计算 c++源码
- 飞机订票系统,c++程序
- C++程序设计语言特别版源码
- C++实现播放GIF图片
- C++编写一个计算器,实现加减乘除,
- 基于C++的内存池的实现
- 二叉树已知后序和中序遍历求前序遍
- 动态添加、删除树形控件的节点,获
- rs485通讯C++
- C++知识体系图解超详细
- C++课件+STL
- C++哈夫曼编码与译码课程设计实现源
- C++ builder 网络传输程序含服务器和客
- C++矩阵的关系判断
评论
共有 条评论