《Windows编程循序渐进》——建立MFC应用程序

  • 如何建立MFC应用程序

打开VS2013:

单击下一步:

选中相应的选项:

点击完成:

  • 应用程序类

我们可以看到:

对于应用程序类,该项目的名称是FirstSoftware,对应的类就是CFirstSoftwareApp;对于对话框类(尽管一个应用程序不一定含有对话框,也可能含有多个对话框),对应的类时CFirstSoftwareDlg

我们在FirstSoftware.h中会发现:

这个类是由CWinApp派生出来的。进入InitInstance()中看下:

这一句使用父类的初始化方法对子类进行初始化。

这里是接收对话框是点击了“确定”还是“取消”。

我们添加一些东西到里边:

但是当真正运行起来之后,单击“确定”或者是“取消”都不会弹出这个MessageBox,Why?继续往下看。

  • 对话框类

下面再来看对话框类:

class CFirstSoftwareDlg : public CDialogEx
{
// 构造
public:
    CFirstSoftwareDlg(CWnd* pParent = NULL);    // 标准构造函数

// 对话框数据,对话框的ID
    enum { IDD = IDD_FIRSTSOFTWARE_DIALOG };

    protected:
    //动态数据交换
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持


// 实现
protected:
    HICON m_hIcon;

    // 生成的消息映射函数
    virtual BOOL OnInitDialog();
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();//每当对话框重新出现在屏幕上,就需要一次重绘
    afx_msg HCURSOR OnQueryDragIcon();//绘制图标
    DECLARE_MESSAGE_MAP()
};

MFC的开发主要是针对消息处理机制

先Ctrl+Shift+E切换到资源窗口,点击对话框ID,我们双击对话框中的某一个按钮,就来到了:

你只需要在这里添加代码,告诉点击一个按钮之后需要做什么即可。

这时候再Ctrl+F5运行,单击某一个按钮运行,就可以弹出对话框了:

  • 添加消息响应

 Ctrl+Alt+X调出工具箱:

可以在工具箱里拖拽一个Button进来。

更改其名称和ID后,双击添加代码:

这种形式的MessageBox和上面的那种MessageBox有什么区别呢?运行一下:

我们发现,对于确定按钮,点几次就会弹出几个MessageBox,且它的标题和内容都是由自己设定的。

而当我们点击新添加的FirstButton时,发现它只能弹出一个MessageBox,且它的标题是自己设定的。

前者被称为非模态的,后者被称为模态的。后者的MessageBox隐含的传递了一个this指针,你也可以写成:

 

转载于:https://www.cnblogs.com/predator-wang/p/5664699.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
看雪论坛主力成员张静盛所编著。为高清晰完整版PDF电子书,是学习Windows编程很好的 书籍。作者简介:张静盛,目前在盛大网络从事技术研发工作。自2005至今在看雪软件安 全论坛担任“Win32/Win64编程”版版主(网名:北极星2003)。曾获第31届ACM/ICPC 国际大学生程序设计竞赛亚洲赛区(上海)银奖。他追求专业技术的精纯,常为工作、为兴 趣废寝忘食。 本书设计了大量的实例演示Windows应用程序开发过程中的相关技术,分为3篇。 软件设计基础篇 ·第1章,软件开发起步:编写第一个软件,熟悉MFC应用程序框架。 ·第2章,对话框应用程序:熟悉模态、非模态对话框以及通常对话框的原理与使用方法。 ·第3章,基本控件:介绍按钮、编辑框、列表框等基本控件的使用方法。 ·第4章,文档与视图:介绍文档与视图的基本原理。 ·第5章,GDI绘图技术:介绍GDI绘图技术的基本的GDI对象。 ·第6章,键盘与鼠标消息:介绍键盘、鼠标消息的处理与模拟。 软件设计综合应用篇 第7章,网络通信基础:介绍网络模型、协议以及套接字编程和LSP的实现。 第8章,密码学算法:介绍常见的密码学算法及其实现。 第9章,多媒体技术:介绍几种多媒体控件的使用方式和屏幕截图、录像的实现。 第10章,数据库技术:介绍MFC ODBC和DAO基本使用方法。 第11章,综合实例开发:实现多个具有趣味性的实例。 Windows系统程序设计篇 第12章,进程与线程:介绍进程与线程的原理及其基本应用。 第13章,内存管理:介绍虚拟内存与内存映射两种内存管理机制。 .第14章,进程间通信:介绍共享内存、管道等进程间通信方式的原理与实现方法。.. 第15章,线程同步:介绍多种线程同步技术,包括使用内核对象实现线程同步。 第16章,动态链接库:介绍DLL的基本原理,包括TLS机制。 第17章,结构化异常处理:介绍结构化异常处理机制,及其在VC++环境下的特性。 第18章,可执行文件格式:介绍PE文件格式及其基本应用。 第19章,模块注入与函数挂接技术:介绍模块注入及函数挂接技术及其防御。
因为本人帐户只能上传15M的文件,电子书文件有130M左右大小,只能分割8个分卷分别 上传。进入我帐户的空间就能看到8个分卷的全部下载地址。 http://yx6071.download.csdn.net/ 或者在搜索栏中搜索也能找到全部8个分卷。 看雪论坛主力成员张静盛所编著。为高清晰完整版PDF电子书,是学习Windows编程很好的 书籍。作者简介:张静盛,目前在盛大网络从事技术研发工作。自2005至今在看雪软件安 全论坛担任“Win32/Win64编程”版版主(网名:北极星2003)。曾获第31届ACM/ICPC 国际大学生程序设计竞赛亚洲赛区(上海)银奖。他追求专业技术的精纯,常为工作、为兴 趣废寝忘食。 本书设计了大量的实例演示Windows应用程序开发过程中的相关技术,分为3篇。 软件设计基础篇 ·第1章,软件开发起步:编写第一个软件,熟悉MFC应用程序框架。 ·第2章,对话框应用程序:熟悉模态、非模态对话框以及通常对话框的原理与使用方法。 ·第3章,基本控件:介绍按钮、编辑框、列表框等基本控件的使用方法。 ·第4章,文档与视图:介绍文档与视图的基本原理。 ·第5章,GDI绘图技术:介绍GDI绘图技术的基本的GDI对象。 ·第6章,键盘与鼠标消息:介绍键盘、鼠标消息的处理与模拟。 软件设计综合应用篇 第7章,网络通信基础:介绍网络模型、协议以及套接字编程和LSP的实现。 第8章,密码学算法:介绍常见的密码学算法及其实现。 第9章,多媒体技术:介绍几种多媒体控件的使用方式和屏幕截图、录像的实现。 第10章,数据库技术:介绍MFC ODBC和DAO基本使用方法。 第11章,综合实例开发:实现多个具有趣味性的实例。 Windows系统程序设计篇 第12章,进程与线程:介绍进程与线程的原理及其基本应用。 第13章,内存管理:介绍虚拟内存与内存映射两种内存管理机制。 .第14章,进程间通信:介绍共享内存、管道等进程间通信方式的原理与实现方法。.. 第15章,线程同步:介绍多种线程同步技术,包括使用内核对象实现线程同步。 第16章,动态链接库:介绍DLL的基本原理,包括TLS机制。 第17章,结构化异常处理:介绍结构化异常处理机制,及其在VC++环境下的特性。 第18章,可执行文件格式:介绍PE文件格式及其基本应用。 第19章,模块注入与函数挂接技术:介绍模块注入及函数挂接技术及其防御。
看雪论坛主力成员张静盛所编著。为高清晰完整版PDF电子书,是学习Windows编程很好的 书籍。作者简介:张静盛,目前在盛大网络从事技术研发工作。自2005至今在看雪软件安 全论坛担任“Win32/Win64编程”版版主(网名:北极星2003)。曾获第31届ACM/ICPC 国际大学生程序设计竞赛亚洲赛区(上海)银奖。他追求专业技术的精纯,常为工作、为兴 趣废寝忘食。 本书设计了大量的实例演示Windows应用程序开发过程中的相关技术,分为3篇。 软件设计基础篇 ·第1章,软件开发起步:编写第一个软件,熟悉MFC应用程序框架。 ·第2章,对话框应用程序:熟悉模态、非模态对话框以及通常对话框的原理与使用方法。 ·第3章,基本控件:介绍按钮、编辑框、列表框等基本控件的使用方法。 ·第4章,文档与视图:介绍文档与视图的基本原理。 ·第5章,GDI绘图技术:介绍GDI绘图技术的基本的GDI对象。 ·第6章,键盘与鼠标消息:介绍键盘、鼠标消息的处理与模拟。 软件设计综合应用篇 第7章,网络通信基础:介绍网络模型、协议以及套接字编程和LSP的实现。 第8章,密码学算法:介绍常见的密码学算法及其实现。 第9章,多媒体技术:介绍几种多媒体控件的使用方式和屏幕截图、录像的实现。 第10章,数据库技术:介绍MFC ODBC和DAO基本使用方法。 第11章,综合实例开发:实现多个具有趣味性的实例。 Windows系统程序设计篇 第12章,进程与线程:介绍进程与线程的原理及其基本应用。 第13章,内存管理:介绍虚拟内存与内存映射两种内存管理机制。 .第14章,进程间通信:介绍共享内存、管道等进程间通信方式的原理与实现方法。.. 第15章,线程同步:介绍多种线程同步技术,包括使用内核对象实现线程同步。 第16章,动态链接库:介绍DLL的基本原理,包括TLS机制。 第17章,结构化异常处理:介绍结构化异常处理机制,及其在VC++环境下的特性。 第18章,可执行文件格式:介绍PE文件格式及其基本应用。 第19章,模块注入与函数挂接技术:介绍模块注入及函数挂接技术及其防御。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值