扫雷___建立工程和界面预估
来源:互联网 发布:手机上能注册淘宝店铺 编辑:程序博客网 时间:2024/06/05 05:59
创建一个工程Mine 由于扫雷只是简单的界面响应及绘制 不需要复杂的文档视图界面 因此需要对框架类进行化:
1.删除MineDoc.h MineDoc.cpp MainFrame.h MainFrame.cpp MineView.h MineView.cpp 6个文件
删除方法 在FileView视图中删除这6个文件(Delete键) 然后在工程文件夹中删除这6个文件 即可
2.创建扫雷主窗口 用于替代删除的CMainFrame类 可以在InitInstance中通过Win32方式定义注册并创建一个主窗口m_pMineWnd
3.在m_pMineWnd窗口创建完成后 将m_pMineWnd赋给CWinApp的主窗口成员m_pMainWnd
4.在CWinApp中删除关于CAboutDialog的定义
5.将CWinApp中的默认消息映射删掉 因为此时默认主菜单响应以及CAboutDialog都已不存在
代码:
const CString classname = _T("MineClass");BOOL CMineApp::InitInstance(){ m_pMineWnd = new CMineWnd(); WNDCLASS wc; ZeroMemory(&wc, sizeof(WNDCLASS)); wc.hInstance = AfxGetInstanceHandle(); wc.hbrBackground = NULL; wc.lpfnWndProc = ::DefWindowProc; wc.hCursor = LoadCursor(IDC_ARROW); wc.hIcon = LoadIcon(IDR_MAINFRAME); wc.lpszClassName = classname; wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU); if(!AfxRegisterClass(&wc)) { AfxMessageBox("注册窗口失败!"); return FALSE; } UINT uWidth = DEFAULT_FRAME_X + m_xMineNum*MINE_WIDTH + LINE_WIDTH_0*3 + SIDE_WIDTH_0 + SIDE_WIDTH_1; UINT uHeight = DEFAULT_FRAME_Y + m_yMineNum*MINE_HEIGHT + LINE_WIDTH_0*3 + SIDE_WIDTH_0*2 + SIDE_WIDTH_1 + SHELL_S_H; UINT uxPos = GetSystemMetrics(SM_CXSCREEN)/2 - uWidth/2; UINT uyPos = GetSystemMetrics(SM_CYSCREEN)/2 - uHeight/2; if(!m_pMineWnd->CreateEx(NULL, classname, _T("扫雷"), WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX, uxPos, uyPos, uWidth, uHeight, NULL, NULL)) { AfxMessageBox("创建主窗口失败!"); return FALSE; } m_pMainWnd = m_pMineWnd; m_pMineWnd->ShowWindow(SW_SHOW); m_pMineWnd->UpdateWindow(); return TRUE; }
要做一个和window游戏扫雷一模一样的界面 就必须要了解Windows游戏扫雷的窗体组成 然后将各种边界值作成宏 方便在窗体随难度改变时作出对应大小改变
//以下宏用于定义窗体各部分边框的大小
#define DEFAULT_FRAME_X6#define DEFAULT_FRAME_Y44#define LINE_WIDTH_03#define LINE_WIDTH_12#define SIDE_WIDTH_06#define SIDE_WIDTH_15#define SHELL_S_H37#define SHELL_S_START_X9#define SHELL_S_START_Y9#define SHELL_L_START_X 9#define SHELL_L_START_Y52#define MINEAREA_FRAME_X12#define MINEAREA_FRAME_Y55#define MINE_WIDTH16#defineMINE_HEIGHT16#define MINE_AREA_LEFT12#define MINE_AREA_TOP55
这里根据窗口大小定义了一系列的宏 这些宏主要是为了增加可读性 具体含义在下一节界面加载分析
完整源代码下载地址点击这里
http://download.csdn.net/detail/wudaijun/4709630
- 扫雷___建立工程和界面预估
- 扫雷___界面的加载
- 扫雷___核心鼠标逻辑
- CTR预估特征工程
- ctr预估之特征工程
- 扫雷游戏【无界面】
- javascript扫雷, canvas界面
- Idea 建立工程和类
- 扫雷游戏总的工程介绍
- maven建立工程的步骤和实例
- 工程中函数库建立和调用
- 工程和界面—Webstorm入门指南 Webstorm中的工程
- C#扫雷游戏-3(界面部分)
- 没有GUI界面的扫雷游戏
- Java界面编程实战之模拟扫雷
- 扫雷代码之界面(1)
- Linux下的字符界面扫雷游戏
- 扫雷小程序(非界面)
- 用代码来控制自定义的控件 自动适应横竖屏时的相对位置
- 《TCP/IP详解-协议》(21)TCP的超时与重传
- linux数据结构
- 批处理
- java算法:冒泡排序
- 扫雷___建立工程和界面预估
- CString 实现原理
- 第一篇:测试
- java算法:排序实现
- iOS开发之iOS程序偏好设置(Settings Bundle)的使用
- 记录Android Framework级开发的心酸历程(一):环境篇
- ICMP数据包-实战分析
- java算法:选择排序
- java算法:插入排序