资源简介
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++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
评论
共有 条评论