MATLAB飞机大战第二版,windows程序设计——飞机大战札记(单文档文件登陆界面)...
windows程序设计——飞机大战笔记(单文档文件登陆界面)
//2015/07/21
/by xbw///
/环境 VS 2013
飞机大战做的差不多了,闲来无事加点高大上的东西,关于单文档的登陆界面;;;
界面有点丑,但是足够账号登陆了,,先试一把;
还不错吧,该有的都有了;;
下面说一下过程 、、、、、、
首先,我们要在资源视图中创建一个Dialog对话框;;;
先大体画一下这个对话框,自己设计就好了,然后在空白处右键添加类,给这个对话框添加类;
这里呢,我添加了一个loading类,英语不是太好,胡乱写点高大上的英文;;;
在哪用对话框我们就需要吧#include "loading.h"加为他的头文件,,,
这样呢,我在view类中建了一个函数
BOOL CPlaneGameView::Indlg()
{
loading dlg;
//opening = TRUE;
if (dlg.DoModal() == IDOK)
{
Invalidate();
opening = dlg.open1;
}
return TRUE;
}
调用在
void CPlaneGameView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: 在此添加专用代码和/或调用基类
//登陆界面
Indlg();
//初始化游戏
if (!opening)
InitGame();
else
exit(0);
}
这个函数中会依次运行;
这样的话登陆界面就会先于单文档窗口显示,
至于opening是我设置的开关,就是点登陆界面的退出按钮时就会执行exit(0),整个程序就结束了,之前遇到的问题是,点了退出按钮后,程序反而运行了飞机大战主程序,哭笑不得,索性把这个按钮删掉了,玩家只能进入游戏才能退出,后来一想这不扯呢吗,哈哈,于是弄了起来;;
先来段loading.cpp的代码;
完整的******
// loading.cpp : 实现文件
//
#include "stdafx.h"
#include "PlaneGame.h"
#include "loading.h"
#include "afxdialogex.h"
// loading 对话框
IMPLEMENT_DYNAMIC(loading, CDialogEx)
loading::loading(CWnd* pParent /*=NULL*/)
: CDialogEx(loading::IDD, pParent)
, open(false)
, open1(false)
{
}
loading::~loading()
{
}
void loading::DoDataExchange(CDataExchange* pDX)
{
}
BEGIN_MESSAGE_MAP(loading, CDialogEx)
ON_WM_NCHITTEST()
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDCANCEL, &loading::OnBnClickedCancel)
ON_BN_CLICKED(IDOK, &loading::OnBnClickedOk)
ON_BN_CLICKED(IDOK2, &loading::OnBnClickedOk2)
END_MESSAGE_MAP()
// loading 消息处理程序
//鼠标拖动窗口移动
LRESULT loading::OnNcHitTest(CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
ScreenToClient(&point);
CRect rc;
GetClientRect(&rc);
if (rc.PtInRect(point))
{
return HTCAPTION;
}
else
{
return CDialogEx::OnNcHitTest(point);
}
}
HBRUSH loading::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
//CFont font;
//font.CreatePointFont(200, _T("宋体"), NULL);
//GetDlgItem(IDC_STATIC)->SetFont(&font);
// TODO: 在此更改 DC 的任何特性
//在OnInitDialog()函数中添加:
// TODO: 在此添加额外的初始化代
if (nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(200, 100, 50));
pDC->SetBkMode(RGB(200, 100, 50)); //设置背景透明
return HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
//return hbr;
return 0;
}
void loading::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
open = FALSE;
CDialogEx::OnCancel();
}
void loading::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CString name;
CString pwd;
int flog = 1;
GetDlgItem(IDC_EDIT3)->GetWindowTextW(name);
GetDlgItem(IDC_EDIT4)->GetWindowTextW(pwd);
if (name.Compare(_T("xbw12138")) || pwd.Compare(_T("201401061130")))
{
if (name.Compare(_T("xbw12138")))
{
flog = 0;
MessageBox(_T("用户名不正确"), _T("提示"));
}
if (pwd.Compare(_T("201401061130"))&&flog==1)
MessageBox(_T("密码不正确"), _T("提示"));
}
else
{
OnOK();
}
}
void loading::OnBnClickedOk2()
{
open1 = FALSE;
// TODO: 在此添加控件通知处理程序代码
}
LRESULT loading::OnNcHitTest(CPoint point)这个是添加的消息,具体什么消息不再这说明了,请看我的其他文章,鼠标拖动对话框移动的那篇,对,就是这个功能;
HBRUSH loading::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)也是添加的消息,为了使static text等一些空间透明,在有背景图的时候效果很明显,不过这里装逼失败了,一会文章补上;;;;;
void loading::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
open = FALSE;
CDialogEx::OnCancel();
}
这段已经没用了,取消的空间已经被我删除了;;;
void loading::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CString name;
CString pwd;
int flog = 1;
GetDlgItem(IDC_EDIT3)->GetWindowTextW(name);
GetDlgItem(IDC_EDIT4)->GetWindowTextW(pwd);
if (name.Compare(_T("xbw12138")) || pwd.Compare(_T("201401061130")))
{
if (name.Compare(_T("xbw12138")))
{
flog = 0;
MessageBox(_T("用户名不正确"), _T("提示"));
}
if (pwd.Compare(_T("201401061130"))&&flog==1)
MessageBox(_T("密码不正确"), _T("提示"));
}
else
{
OnOK();
}
}
这段是重点了吧算是,检查登陆是否正确,,,虽然是个单机,不过这样也很高大上,后续呢,我将要用xml记录一些数据,试试能不能实现一个账号记录一个分数,弄个排行榜什么的,等我昂;
void loading::OnBnClickedOk2()
{
open1 = FALSE;
// TODO: 在此添加控件通知处理程序代码
}
这就是退出按钮的开关,,,,至于一些变量,都添加在相应的头文件里吧,一定要记得初始化,要不会乱套的,,,
这样就基本差不多了,不正确的地方互相交流学习,有问题在下边留言,我会回复跟您一同解决问题的,
这样就车不多了
,不多说了
版权声明:本文为博主原创文章,未经博主允许不得转载。1楼zhoujielunzhimi昨天 17:20居然看到了exit(0);nexit一般用在console程序中,n界面程序使用PostQuitMessage(0).Re: xbw12138昨天 19:04回复zhoujielunzhimin学习了,谢谢您,我会改进的Re: xbw12138昨天 19:05回复zhoujielunzhimin学习了,谢谢您,我会改进的
MATLAB飞机大战第二版,windows程序设计——飞机大战札记(单文档文件登陆界面)...相关推荐
- windows程序设计——飞机大战笔记(单文档文件登陆界面)
//2015/07/21 /by xbw/// /环境 VS 2013 飞机大战做的差不多了,闲来无事加点高大上的东西,关于单文档的登陆界面::: 界面有点丑,但是足够账号登陆了,,先试一把: 还不错 ...
- Windows编程与MFC # 4 单文档应用程序(1)
整理自VC++程序设计课程课件 使用VC++的应用程序向导MFC AppWizard可以开发: Single document(单文档) Multiple document(多文档) Dialog b ...
- 数字图像处理(MATLAB)(第二版) 冈萨雷斯 学习笔记
数字图像处理(MATLAB)(第二版) 冈萨雷斯 主要用来记录自己的学习过程,相关实验内容,便于日后查找相关知识点及复习所用 第二章 灰度变换和空间滤波 本章重点讨论两类空间域处理方法:亮度(或灰度) ...
- 20165234 [第二届构建之法论坛] 预培训文档(Java版) 学习总结
[第二届构建之法论坛] 预培训文档(Java版) 学习总结 我通读并学习了此文档,并且动手实践了一遍.以下是我学习过程的记录~ Part1.配置环境 配置JDK 原文中提到了2个容易被混淆的概念 JD ...
- java毕业设计飞机航班信息查询系统源码+系统+数据库+lw文档+调试运行
java毕业设计飞机航班信息查询系统源码+系统+数据库+lw文档+调试运行 注意:该项目只展示部分功能,如需了解,文末获取源码地址. 临近学期结束,还是毕业设计,你还在做java程序.网络编程.课程设 ...
- 计算机毕业设计Java飞机订票管理系统(源码+系统+mysql数据库+lW文档)
计算机毕业设计Java飞机订票管理系统(源码+系统+mysql数据库+lW文档) 计算机毕业设计Java飞机订票管理系统(源码+系统+mysql数据库+lW文档) 本源码技术栈: 项目架构:B/S架构 ...
- VC/MFC 俄罗斯方块双人版(基于MFC单文档)
游戏最终界面如图: 目录: 题目要求 功能需求 总体设计 系统模块 系统业务处理流程 详细设计 砖块预显示 分数统计 砖块移动和游戏暂停的实现 游戏难度选择 播放背景音乐 游戏设置与帮助 静态文本超链 ...
- c语言程序设计班档案管理系统报告,C语言程序设计班级档案管理系统报告文档.doc...
C语言程序设计班级档案管理系统报告文档 课 程 设 计 报 告 课程名称 <C语言程序设计> 课题名称 班级档案管理系统 专 业 计算机科学与技术专业 班 级 计算机1103班 学 号 姓 ...
- 询问HTG:在Windows 7中移动我的文档,备份Android和多监视器任务栏
Once a week we round up some of the responses we've fired off to How-To Geek readers and share them ...
最新文章
- 2021 年 5 月中国编程语言排行榜,C++ 超过 Java 没戏了...
- maven将xml文件一起打包
- 网站推广期间出现排名异常网站推广专员应如何应对?
- python php linux-Apache同时支持PHP和Python的配置方法
- 搭建属于自己的wiki
- SAP CRM的订单模型移植到S4HANA后,在订单保存功能上作出的改进
- java 域_java四大域总结
- leetcode 两个数组的交集 II
- 天,又有人找我帮忙!
- 隐藏控制台程序的窗口
- python list中分段_python将list中的元素拼接为一个str
- 高翔《视觉SLAM十四讲》从理论到实践
- PMP®考试通过率多少
- 可牛影像动感渐隐闪图教程
- 利用googlemap查询经纬度
- 禅道的测试模块(编写用例)
- 温肯本科学习回忆录一:简述我的本科专业
- 无意听到的歌, 心理很难受..
- intel RDT (Resource Director Technology) 管理LLC和内存带宽
- 二维码解码器Zbar 的配置和基本使用
热门文章
- Tortoise SVN 版本控制常用操作知识
- 汽车电子专业知识篇(四)-一文详解无人驾驶中的各种感知传感器
- 机器学习实战应用50讲(一)-使用student’s T检验的未必是学生
- 如何提升你的代码能力?
- 计算机c盘能分区吗,电脑C盘怎么分区
- php中得到复选框的数据的代码,表单复选框向PHP传输数据的代码
- 云计算hcie贴吧_专业介绍|计算机网络技术
- java获取默认用户目录_Java获取当前路径
- linux 用mutex定义一个linkedlist,【基于LINUX的操作系统实验教程最终版材料】
- oracle 10g客户端连接11g,生产环境oracle10g升级至11g准备工作