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程序设计——飞机大战札记(单文档文件登陆界面)...相关推荐

  1. windows程序设计——飞机大战笔记(单文档文件登陆界面)

    //2015/07/21 /by xbw/// /环境 VS 2013 飞机大战做的差不多了,闲来无事加点高大上的东西,关于单文档的登陆界面::: 界面有点丑,但是足够账号登陆了,,先试一把: 还不错 ...

  2. Windows编程与MFC # 4 单文档应用程序(1)

    整理自VC++程序设计课程课件 使用VC++的应用程序向导MFC AppWizard可以开发: Single document(单文档) Multiple document(多文档) Dialog b ...

  3. 数字图像处理(MATLAB)(第二版) 冈萨雷斯 学习笔记

    数字图像处理(MATLAB)(第二版) 冈萨雷斯 主要用来记录自己的学习过程,相关实验内容,便于日后查找相关知识点及复习所用 第二章 灰度变换和空间滤波 本章重点讨论两类空间域处理方法:亮度(或灰度) ...

  4. 20165234 [第二届构建之法论坛] 预培训文档(Java版) 学习总结

    [第二届构建之法论坛] 预培训文档(Java版) 学习总结 我通读并学习了此文档,并且动手实践了一遍.以下是我学习过程的记录~ Part1.配置环境 配置JDK 原文中提到了2个容易被混淆的概念 JD ...

  5. java毕业设计飞机航班信息查询系统源码+系统+数据库+lw文档+调试运行

    java毕业设计飞机航班信息查询系统源码+系统+数据库+lw文档+调试运行 注意:该项目只展示部分功能,如需了解,文末获取源码地址. 临近学期结束,还是毕业设计,你还在做java程序.网络编程.课程设 ...

  6. 计算机毕业设计Java飞机订票管理系统(源码+系统+mysql数据库+lW文档)

    计算机毕业设计Java飞机订票管理系统(源码+系统+mysql数据库+lW文档) 计算机毕业设计Java飞机订票管理系统(源码+系统+mysql数据库+lW文档) 本源码技术栈: 项目架构:B/S架构 ...

  7. VC/MFC 俄罗斯方块双人版(基于MFC单文档)

    游戏最终界面如图: 目录: 题目要求 功能需求 总体设计 系统模块 系统业务处理流程 详细设计 砖块预显示 分数统计 砖块移动和游戏暂停的实现 游戏难度选择 播放背景音乐 游戏设置与帮助 静态文本超链 ...

  8. c语言程序设计班档案管理系统报告,C语言程序设计班级档案管理系统报告文档.doc...

    C语言程序设计班级档案管理系统报告文档 课 程 设 计 报 告 课程名称 <C语言程序设计> 课题名称 班级档案管理系统 专 业 计算机科学与技术专业 班 级 计算机1103班 学 号 姓 ...

  9. 询问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 ...

最新文章

  1. 2021 年 5 月中国编程语言排行榜,C++ 超过 Java 没戏了...
  2. maven将xml文件一起打包
  3. 网站推广期间出现排名异常网站推广专员应如何应对?
  4. python php linux-Apache同时支持PHP和Python的配置方法
  5. 搭建属于自己的wiki
  6. SAP CRM的订单模型移植到S4HANA后,在订单保存功能上作出的改进
  7. java 域_java四大域总结
  8. leetcode 两个数组的交集 II
  9. 天,又有人找我帮忙!
  10. 隐藏控制台程序的窗口
  11. python list中分段_python将list中的元素拼接为一个str
  12. 高翔《视觉SLAM十四讲》从理论到实践
  13. PMP®考试通过率多少
  14. 可牛影像动感渐隐闪图教程
  15. 利用googlemap查询经纬度
  16. 禅道的测试模块(编写用例)
  17. 温肯本科学习回忆录一:简述我的本科专业
  18. 无意听到的歌, 心理很难受..
  19. intel RDT (Resource Director Technology) 管理LLC和内存带宽
  20. 二维码解码器Zbar 的配置和基本使用

热门文章

  1. Tortoise SVN 版本控制常用操作知识
  2. 汽车电子专业知识篇(四)-一文详解无人驾驶中的各种感知传感器
  3. 机器学习实战应用50讲(一)-使用student’s T检验的未必是学生
  4. 如何提升你的代码能力?
  5. 计算机c盘能分区吗,电脑C盘怎么分区
  6. php中得到复选框的数据的代码,表单复选框向PHP传输数据的代码
  7. 云计算hcie贴吧_专业介绍|计算机网络技术
  8. java获取默认用户目录_Java获取当前路径
  9. linux 用mutex定义一个linkedlist,【基于LINUX的操作系统实验教程最终版材料】
  10. oracle 10g客户端连接11g,生产环境oracle10g升级至11g准备工作