为传统的操作系统编写的程序使用过程化的模型,程序往往是从头到尾顺序执行,例如C程序,从第一行带有main()函数的语句开始执行,windows程序则不是这样执行的,他们使用如下图的事件驱动编程模型,应用程序通过处理操作系统发送来的消息来响应事件。

事件:可以是一次鼠标单击,或者是要求窗口更新等其他命令;

**程序进入点:**WinMain函数,WinMain函数创建窗口,并进入消息循环,即获取消息
或将其调度给窗口过程;
窗口过程:大部分操作都是在这里发生,窗口过程函数处理发送给窗口的消息;
消息队列:消息被检索前处于消息队列中等待;

一个典型的应用程序绝大部分操作都是在响应它接受到的消息,除了等待下一个消息到达之外,什么也不做。在C语言中,窗口过程一般作为一个巨大的函数实现,该函数包含一个很大的SWITCH语句,为每一个消息都提供一个选项,处理特定消息的程序代码被称为消息处理程序。

啥是消息?Windows定义了成千上百个消息,大多数都是以字符WM开头并带有下划线,例如WM_CHAR,表示从键盘输入字符。下表列出了常用的Windows消息。

  • 消息 发送条件
  • WM_CHAR 从键盘输入字符
  • WM_COMMAND
  • WM_CREAT 生成窗口
  • WM_DESTROY 撤销窗口
  • WM_LBUTTONDOWN 按下鼠标左键
  • WM_LBUTTONUP 释放鼠标左键
  • WM_PAINT 窗口需要重新绘制
  • WM_QUIT 应用程序将结束

MFC简介

Microsoft 提供的MFC是封装了Windows API功能的C++类库,在MFC中,你不经常直接调用Windows API,而是通过MFC创建对象并调用这个对象的成员函数,MFC同时也是一个应用程序的框架结构,他不仅仅是类的集合,还帮助定义了应用程序的结构并帮助应用程序处理很多杂物。
并非所有的MFC提供的函数都是类成员,MFC以全局函数的形式提供了自己各类的API函数,名字以Afx开头。类成员函数仅仅能在所属对象的说明体中被调用,而在任何时候任何地方都可以使用AFX函数。

MFC Windows程序设计 读书笔记1相关推荐

  1. MFC Windows程序设计 读书笔记2

    Windows中负责图形输出的是Graphics Device Interface(图形设备接口),或称GDI.本节主要讲述CDC类和它的继承类,并介绍三种最常用的GDI基本元素,画笔.画刷.和字体, ...

  2. windows程序设计读书笔记一

    用VC MFC有一段时间了,总觉得还没掌握到精髓,项目代码基本是拼凑起来的.总是少点什么.前段时间,看完 快乐鹦鹉 的程序人生, 里面提到 全局变量 的一段.突然想到自己用 vc+opencv的一个小 ...

  3. MFC Windows程序设计学习笔记--文件和串行化

    文件IO主要为了 支持文档的存储和加载. 多数MFC程序用CArchive对象实现磁盘文档的存储和加载. 1.CFile: m_hFile 保存着与CFile相关联的文件的句柄. m_strFileN ...

  4. Windows程序设计 读书笔记(3)

    第三章 窗口与消息 3.1 窗口的创建 用户对窗口的输入以'消息'的形式传递给窗口,而窗口也借助消息来与其他窗口进行通信.例如当用户改变窗口的尺寸时,Windows便向应用程序发送一条携带新窗口尺寸相 ...

  5. windows程序设计读书笔记四

    前面的程序碰到刷新时碰到闪烁问题,百度一搜,一堆关于双缓冲解决闪烁的文章. 具体实施方案为: 1.建立一个内存DC hdcMem = CreateCompatibleDC(hdc); 此时,内存DC的 ...

  6. Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据

    Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据 Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据 7.1 程序数据的命名 PL/SQL要求在给数据结构命名的时候应 ...

  7. Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理

    Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理 Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理 ACID原则:即一个事务具有原子性.一致性. ...

  8. MFC Windows 程序设计[192]之六只眼八卦图按钮组(附源码)

    MFC Windows 程序设计[192]之六只眼八卦图按钮组 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class librarie ...

  9. MFC Windows 程序设计[253]之美丽的编辑搜索框(附源码)

    MFC Windows 程序设计[253]之美丽的编辑搜索框 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries ...

  10. PHP程序设计读书笔记七

    一.比较字符串: 1."=="和"==="的区别: "=="在比较之前会先把非字符串类型的操作数转换成字符串,所以"3" ...

最新文章

  1. Linux tcpdump命令详解与Wireshark
  2. 使用指针统计字符串中的数字字符的个数
  3. mysql半同步复制问题排查
  4. 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,天津大学《计算机应用基础》2016年12月考试期末大作业考核试题...
  5. bzoj1222: [HNOI2001]产品加工
  6. zookeeper专题:zookeeper的节点类型,数据持久化机制
  7. 管理项目的问题跟踪器的提示
  8. 登录验证---添加验证码验证,Cookie保存功能
  9. 20-190-092-安装-Flink集群安装 flink-1.9.0 On Yarn
  10. ASP.NET 状态视图概览
  11. 漫画:趣解鸿蒙 OS 如何实现跨平台?
  12. U811.1接口EAI系列之三--采购订单生成--VB语言
  13. Remoting Generic Async Queue (Release 2) override InitializeLifetimeService return null
  14. java编程给三个数字排序_JAVA程序.输入3个数字,有IF语句,从小到大排序
  15. Android简易实战教程--第十四话《模仿金山助手创建桌面Widget小部件》
  16. OpenCV—python—OCR 通用表格自动校正与识别
  17. SMT常见元器件贴片封装名称识别
  18. 算法学习笔记(5) 传递闭包
  19. python tcp socket.connect() [Errno 56] Socket is already connectedconnect
  20. 微信平台开发获取微信用户的OPENID

热门文章

  1. 使用 Iperf 测试软路由性能
  2. java servlet面试题_JavaWeb之JSP和servlet面试题附答案
  3. FLEX地图应用教程集
  4. 2019/07/08 分布式文件系统概述(01)
  5. labelme标注的json文件转换成png格式
  6. html5svg在线编辑器,HTML5 SVG图形在线编辑器
  7. Linux C/C++UDP通信实现
  8. 一个好用的在线画图工具
  9. 潜利KINGLEE触摸屏维修喷码机显示屏电脑
  10. kettle下载安装和连接