windows消息处理机制和VB
在开始具体的VB知识讲述之前,吉大的教程为我们讲述了windows的消息处理机制,并用C语言,简单描述了windows内部的消息处理机制,分了:注册窗口类,创建窗口,显示消息循环,取出发给窗口,函数执行
首先说一下消息,消息是任何面向对象系统的关键部分,windows环境与应用程序之间的交互,及其与外界的交互就是通过消息来完成的。Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。
Windows的消息系统是由3个部分组成的:
消息队列:Windows能够为所有已注册的应用程序维护一个消息队列。应用程序必须从消息队列中获取
消息,然后分派给某个窗口。
消息循环:通过这个循环机制应用程序从消息队列中检索消息,再把它分派给适当的窗口,然
后继续从消息队列中检索下一条消息,再分派给适当的窗口,依次进行。
窗口过程:每个窗口都有一个窗口过程来接收传递给窗口的消息,它的任务就是获取消息然后
响应它,窗口过程是一个回调函数;处理了一个消息后,它通常要返回一个值给Windows。
注意回调函数是程序中的一种函数,它是由Windows或外部模块调用的。
一个消息从产生到被一个窗口响应,其中有5个步骤:
1) 系统中发生了某个事件。
2) Windows把这个事件翻译为消息,然后把它放到消息队列中。
3) 应用程序从消息队列中接收到这个消息,把它存放在记录中。
4) 应用程序把消息传递给一个适当的窗口的窗口过程。
5) 窗口过程响应这个消息并进行处理。
步骤3和4构成了应用程序的消息循环。消息循环往往是Windows应用程序的核心,因为消息循环
使一个应用程序能够响应外部的事件。消息循环的任务就是从消息队列中检索消息,然后把消息传递给适当的窗口。如果消息队列中没有消息,Windows就允许其他应用程序处理它们的消息。
Windows操作系统最大的特点就是其图形化的操作界面,其图形化界面是建立在其消息处理机制这个基础之上的。
不理解Windows消息处理机制,肯定无法深入的理解Windows编程。可惜我对windows的消息处理机制内部原理还是理解的比较浅,希望随着学习的深入,能理解得更透彻。
参考:
转载于:https://www.cnblogs.com/spring5/archive/2010/12/15/2485338.html
windows消息处理机制和VB相关推荐
- 张赐荣 | Windows 消息处理机制 入门
张赐荣 | Windows 消息处理机制 入门 [文 / 张赐荣] 事件驱动和消息循环 消息概述 消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按 ...
- VC编程Windows消息处理机制、阻塞试验、SetTimer、MessageBox、小心消息响应处理函数
VC6标准WIN32程序,Windows消息处理机制: 1.在注册窗口类时,指定了消息处理函数WndProc(). 2.WinMain()里有消息循环: while (GetMessage(& ...
- windows消息处理机制
消息 Windows程序设计是一种完全不同于传统的DOS方式的程序设计方式,它是一种事件驱动的程序设计模式,主要是基于消息的. 例如,当用户在窗口窗口中画图的时候,按下鼠标左键,此时,操作系统会感知到 ...
- Windows消息机制-PreTranslateMessage
PreTranslateMessage作用和使用方法 Windows消息机制的流程: A. 操作系统接收应用程序的窗口消息,将消息投递到该应用程序的消息队列中 B. 应用程序在消息循环中调用GetMe ...
- qt 消息处理机制与window消息处理机制的比较
一:windows程序的消息处理 windows程序的处理大概一致 如下: 1.0 windows 消息处理机制: int WINAPI WinMain(HINSTANCE hInstance, H ...
- Windows Hook机制(转贴一)
最近想写个监视系统的小软件,需要Windows Hook的知识,所以会陆续贴几个关于Hook的文章做参考. 本文将试图以下面的顺序讲解HOOK的大部分内容: 1. WINDOW ...
- Android消息处理机制
Google参考了Windows的消息处理机制,在Android系统中实现了一套类似的消息处理机制.学习Android的消息处理机制,有几个概念(类)必须了解: 1. Message 消息 ...
- Android应用程序消息处理机制(Looper、Handler)分析(1)
Android应用程序是通过消息来驱动的,系统为每一个应用程序维护一个消息队例,应用程序的主线程不断地从这个消息队例中获取消息(Looper),然后对这些消息进行处理(Handler),这样就实现了通 ...
- Windows消息机制要点
1. 窗口过程 每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle),消息ID(Message ID),和两个消息参数(wP ...
- C# 消息处理机制及自定义过滤方式
转自原文 C# 消息处理机制及自定义过滤方式 一.消息概述 Windows 下应用程序的执行是通过消息驱动的.消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理. ...
最新文章
- node.js发送邮件
- Windows进程与线程学习笔记(一)—— 进程结构体
- 接口测试工具postman安装及使用
- python数据类型详解(转自:http://www.cnblogs.com/linjiqin/p/3608541.html)
- spring 注释的作用_Spring的@Primary注释在起作用
- PDE双曲型方程数值解形式及例题分析
- uci数据集_有关葡萄酒质量的数据分析
- 华为方舟编译器 PK 微软苹果谷歌编译器,到底谁胜出?
- oracle面试题关于课程表获取最高分和名字并且去掉重复,oracle复杂查询练习题
- Linux 上的数据可视化工具
- 星期一到星期日的英文_缩写_读音_巧记方法
- 如何提高关键词的质量度?
- Excise_day01
- Matlab GUI程序封装成exe文件并在不安装Matlab的电脑上运行
- 解决java网络编程IPv6问题
- 微信小程序Day2学习笔记
- 几款好用的矢量图库网站
- python 量化分析 入门_量化入门-小白到菜鸟的学习路线
- 计算机没有本地网络,电脑的本地连接不见了怎么办
- 零基础学SQL(四、可视化工具连接数据库、数据库创建及删除)
热门文章
- 微信小程序云开发教程-微信小程序的JS高级-页面间数据传递
- 解决excel导出大数字溢出或者被科学计数法格式化
- 学生用计算机如何clean,windows installer clean up,教您电脑如何使用清理实用工具
- 创建一个war类型的maven项目
- apache php 关闭版本号显示,不显示版本号
- gitblit git SERVER window 安装配置 hook post-receive 自动部署
- php rsa2 微博,微博登录分析
- 阶段3 1.Mybatis_12.Mybatis注解开发_8 mybatis注解开发使用二级缓存
- centos6.4-x86-64系统更新系统自带Apache Http Server
- Centos 7.x 安装配置tomcat-8过程梳理