• 大小: 22KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-17
  • 语言: C/C++
  • 标签: c++  win32  

资源简介

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  扫雷\script1.aps

     文件       2033  2009-09-05 18:01  扫雷\script1.rc

     文件      18644  2009-09-12 09:06  扫雷\winmain.cpp

     目录          0  2012-08-16 09:52  扫雷\Debug

     目录          0  2012-08-16 09:52  扫雷

----------- ---------  ---------- -----  ----

               109365                    14


评论

共有 条评论