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)由另一个消息产生。

时间: 2024-10-29 19:09:46

1-1 Windows应用程序的特点的相关文章

Windows应用程序

  Windows应用程序是由一系列的消息处理 代码来实现的.这和传统的过程式编程方法很不一样,编程者只能够 预测用户所利用应用程序用户界面对象所进行的操作以及为这些操作 编写处理代码,却不可以这些操作在什么时候发生或者是以什么顺序 来发生,也就是说,我们不可能知道什么消息会在什么时候以什么顺 序来临. Windows应用程序基本流程:   Windows API:(windowsAppliacation Programming Interface. Windows 应用程序编程接口), API

C#windows应用程序打包(VS2010+SQLServer2008)

C#windows应用程序打包(VS2010+SQLServer2008) 开发环境:VS2010+SQL Server 2008 操作系统:win7_32bit 旗舰版 开发语言:C# 项目名称:学生寄宿管理系统 下面开始介绍:如何给windows应用程序打包? 第一步: 打开VS2010,打开你要打包的项目,然后右击"解决方案",”添加“,"新建项目",弹出如下图所示界面: 点击”安装和部署“左边的三角形,选择下面的”Visual studio Installe

Windows应用程序文件格式转换控件LEADTOOLS ePrint Professional

LEADTOOLS ePrint Professional控件是一个多功能一体化文件转换解决方案,它可帮助您将任何Windows应用程序中的文件或图像转换为150种类型的文件,其中包括:PDF, DOC, HTML, TXT, TIFF, JPG, GIF, PNG等等. ePrint Professional包含了两种转换模式 - ePrint printer和ePrint Workstation printer,为您提供不同水平的文件转换控制,您可以更加灵活的进行生产.ePrint prin

Windows应用程序的消息处理机制

(1)操作系统接收到应用程序的窗口消息,将消息投递到该应用程序的消息队列中. (2)应用程序在消息循环中调用GetMessage函数从消息队列中取出一条一条的消息. 取出消息后,应用程序可以对消息进行一些预处理,例如,放弃对某些消息的响应,或者调用TranslateMessage产生新的消息. (3)应用程序调用DispatchMessage,将消息回传给操作系统. 消息是由MSG结构体对象来表示的,其中就包含了接收消息的窗口的句柄.因此,DispatchMessage函数总能进行正确的传递.

Windows应用程序高级控件之ListView控件

ListView控件---列表视图控件 用途:显示带图标的项列表,其中可以显示大图标.小图标和数据 ListView控件的常用属性: View属性:设置项在控件中的显示方式,View属性的值有以下几种 Details       每个项显示在不同的行上 LargeIcon     每个项都显示为一个最大的图标,下面有标签,是默认的视图模式 List          每个项显示为一个小图标,右边带标签,各项排列在列中,没有列表头 SmallIcon     每个项显示为小图标,右边带标签 Tit

Windows应用程序高级控件之TreeView

TreeView控件--树控件 为用户显示节点层次结构,每个节点又可以包含子节点. 添加和删除树节点 添加--TreeView的Nodes属性的Add方法:public virtual int Add(TreeNode node) 删除--TreeView的Nodes属性的Remove方法:public void Remove(TreeNode node) 添加-实例代码: private void Form1_Load(object sender, EventArgs e) { //为树控件建

Windows控制台程序“选定模式”的问题

最近用Nodejs写了个代理程序,一直用的好好的,木有问题,今天突然发现不能用了,使用telnet去连代理的端口也能连通,可是服务就是不能正常使用,提示连接超时. 当时猜测是Nodejs的某个地方阻塞了,分析了下代码,怎么也想不明白不能有阻塞的地方啊. 又是各种倒腾,后来发现一个奇怪的问题,我把鼠标放到Nodejs的控制台上,默认进入了编辑模式,而且整个应用的标题变成了"选定 XXXX"这种形式,我想退出程序,需要按两次Ctrl+C,难道是这的问题? 又来有测试了下,果真还是这的问题,

基本的Windows应用程序 窗体创建

基本的Windows应用程序 转载:http://shiba.hpe.sh.cn/jiaoyanzu/WULI/Article1506 下面是一个完全可以运行的Windows程序,代码很简单,读者通过代码中的注释了解它们的含义.我们将在下一节详细讲解些代码.做为一个练习,我们建议读者在你的开发工具中创建一个工程,手工输入些代码,然后编译运行这个程序.注意,如果你使用的是Visual C++,那么在选择工程类型时必须是“Win32 application project”,而不能是“Win32 c

Windows窗口程序运行过程

现在,简单介绍下windows应用程序的大概运行过程,让刚开始接触Windows开发或者MFC开发的同学有一个大致的了解. 1.创建一个窗口首先要注册一个窗口类,初始化wndclass中的各个域,设置窗口过程函数. 2.调用RigisterClass来注册这个窗口类. 3.创建窗口.CreateWindow 4.显示窗口.ShowWindow 5.刷新窗口.UpdateWindow 5.消息循环. 这里主要讲解消息循环. 消息循环中的循环是由程序中 while(GetMessage(&msg,N

Unity3D部署windows store程序到Surface进行调试

Unity3D如果开发Windows Store的游戏,一般需要真机或者模拟器来调试,本文主要讲解下如何把程序发布到Surface真机上进行调试. 首先第一步肯定是要在Unity3D中将项目build出来: 那么接下来就要依靠Visual Studio 2013来帮助我们调试Windows Store的程序了. Visual Studio 2013虽然集成了一个Windows 8.1的模拟器,但是很多应用需要用到真机,甚至是Surface这种移动设备(比如指南针.加速器等的需要) 笔者刚遇到本问