1-1 Windows应用程序的特点
主要内容:介绍Windows应用程序的特点,并附加了消息和事件的一些区别 //以后该分类中字体均采用 隶书 4(14pt)
1. 面向对象
<1>针对Windows应用本身,如记事本界面,
不像传统的控制台,而是针对窗口、菜单等对象进行操作(窗口就是一个对象)
<2>对象通俗的讲就是Windows应用程序界面上的各种规范的部件
比如窗口、菜单、按钮、对话框、程序模块等
<3>编写Windows程序想当一部分工作是在创建对象和为对象属性赋值
<4>对象特征:具有规范的形态和操作模式
2.具有消息传递机制和事件驱动机制
<1>传统的MS-DOS程序是按程序代码的命令顺序执行的
<2>基于Windows的应用程序是以消息为基础,由事件来驱动,
但不是由事件的顺序来控制的,而是由事件的发生来控制的,而这种发生是随机的
<3>Windows应用程序对用户输入的响应方式主要包括消息循环和事件响应两种机制
例如:用户单击鼠标左键,那么在消息响应的机制中就会产生单击鼠标左键这个消息,
在VC++中,Windows将产生的消息送到消息队列中,
然后系统将消息传递给窗口处理函数进行响应的处理
3.多任务和多线程
<1>Windows是多任务的操作系统,它能同时运行多个应用程序
4.多形式的输入输出手段
<1>硬件方式
鼠标、键盘、扫描仪、手写板等
<2>软件方式
定时器
5.设备无关的图形输出
<1>Windows是多窗口的操作系统,是由操作系统来统一管理屏幕的输出
系统是使用的GDI(Graphics Device Interface,图形设备接口)进行输出,
因而屏蔽了不同设备的差异
另附上事件和消息的区别:
事件是一个动作——用户触发的动作。
消息是一个信息——传递给系统的信息。
事件与消息的概念在计算机中较易混淆,但本质不同:
事件由用户(操作电脑的人)触发且只能由用户触发,操作系统能够感觉到由用户触发的事件,并将此事件转换为一个(特定的)消息发送到程序的消息队列中。
这里强调的是:
可以说“用户触发了一个事件”,而不能说“用户触发了一个消息”。
用户只能触发事件,而事件只能由用户触发。
一个事件产生后,将被操作系统转换为一个消息,所以一个消息可能是由一个事件转换而来(或者由操作系统产生)。
一个消息可能会产生另一个消息,但一个消息决不能产生一个事件——时间只能由用户触发。
总结(事件:消息的来源)
事件:只能由用户通过外设的输入产生。
消息:(产生消息的来源有三个)
(1)由操作系统产生。
(2)由用户触发的事件转换而来。
(3)由另一个消息产生。
1-1 Windows应用程序的特点的更多相关文章
- 【系统篇】从int 3探索Windows应用程序调试原理
探索调试器下断点的原理 在Windows上做开发的程序猿们都知道,x86架构处理器有一条特殊的指令——int 3,也就是机器码0xCC,用于调试所用,当程序执行到int 3的时候会中断到调试器,如果程 ...
- 一个优秀windows C++程序员的知识体系
思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的热情. 转自http://www.cppblog.co ...
- Windows 安装程序无法将 Windows 配置为在此计算机的硬件上运行
遇到这个问题是用辅助工具(WinNTSetup3.exe)进行的安装,重启后就就遇到“Windows 安装程序无法将 Windows 配置为在此计算机的硬件上运行” 解决:在WIN PE 下挂载安装光 ...
- 字符模型和Windows等价程序
二者很明显的区别,dos和gui 字符模式模型 #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]){ print ...
- 一个优秀windows C++程序员的知识体系[转]
转自:一个优秀windows C++程序员的知识体系 思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的 ...
- 如何给windows窗体程序打包成一个安装包
http://blog.csdn.net/xyy410874116/article/details/6341787 给windows窗体程序打包成一个安装包:具体操作在:http://hi.baidu ...
- vs调试windows mobile程序时布署时间太长的解决办法
vs调试windows mobile程序时布署时间太长的解决办法 1.VS平台上,选工具-选项-项目和解决方案-MS BUILD项目生成输出详细信息中选择“诊断”,目的是在调试窗口中看出哪个过程编译的 ...
- VC菜菜鸟:建立第一个基于Visual C++的Windows窗口程序
建立第一个基于VisualC++的Windows窗口程序: 发表于:http://blog.csdn.net/it1988888/article/details/10306585 a)执行命令:新建 ...
- WINDOWS自启动程序的10大隐身之所
Windows启动时通常会有一大堆程序自动启动.不要以为管好了“开始→程序→启动”菜单就万事大吉,实际上,在Windows XP/2K中,让Windows自动启动程序的办法很多,下文告诉你最重要的两个 ...
随机推荐
- 【STL】-pair的用法
初始化: std::pair<int, float> p; //initialize p.first and p.second with zero std::pair<int, co ...
- Linux-如何添加路由表
linux下静态路由修改命令方法一:添加路由route add -net 192.168.0.0/24 gw 192.168.0.1route add -host 192.168.1.1 dev 19 ...
- POJ 1700 F(Contest #3)
Description A group of N people wishes to go across a river with only one boat, which can at most ca ...
- 详解x86、IA-32、IA-64等CPU系列
x86架构起源于Intel公司在1978年推出的8086处理器.8086在1981年为IBM PC所选用,之后x86便成为了个人电脑的标准平台,成为历上最成功的CPU架构.8086是一款16位CPU, ...
- table td的宽度详解
前言:一直总觉得td的宽度好难驾驭,但万事万物总是有规律的.就像亮剑说的:不用因为怕八路就敬而远之,应该靠上去,熟悉他们,了解他们. 正文: Table只有Table的宽度是可 ...
- 解密SQL SERVER 2005加密存储过程,函数
在SQL SERVER 2005中必须用专用管理连接才可以查看过程过程中用到的表 EG:sqlcmd -A 1>use test 2>go 1>sp_decrypt 'p_testa ...
- IOS socket开发基础
摘要 详细介绍了iOS的socket开发,说明了tcp和udp的区别,简单说明了tcp的三次握手四次挥手,用c语言分别实现了TCPsocket和UDPsocket的客户端和服务端,本文的作用是让我们了 ...
- 结构体,内存,指针例题.DOC
2015.1.30 递归函数:1.自身调用自己:2.要有结束条件!typedef 后面加分号:一般后面的重定义名加_,例如:typedef unsigned long int uint_16;结构体成 ...
- 【LeetCode OJ】Interleaving String
Problem Link: http://oj.leetcode.com/problems/interleaving-string/ Given s1, s2, s3, find whether s3 ...
- iOS ARC和MRC混编
如果一个工程为MRC,其中需要添加ARC的文件: 选择target -> build phases -> compile sources ->单击ARC的文件将compil ...