⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1_3 windows˪

📁 window编程指南
💻
📖 第 1 页 / 共 3 页
字号:
                        (1)输入消息:包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由应用程序来处理消息。<BR>&nbsp;&nbsp;&nbsp; 
                        (2)控制消息:用来与Windows的控制对象,如列表框、按钮、检查框等进行双向通信。当用户在列表框中改动当前选择或改变了检查框的状态时发出此类消息。这类消息一般不经过应用程序消息队列,而是直接发送到控制对象上去。<BR>&nbsp;&nbsp;&nbsp; 
                        (3)系统消息:对程序化的事件或系统时钟中断作出反应。一些系统消息,象DDE消息(动态数据交换消息)要通过Windows的系统消息队列,而有的则不通过系统消息队列而直接送入应用程序的消息队列,如创建窗口消息。<BR>&nbsp;&nbsp;&nbsp; 
                        (4)用户消息:这是程序员自己定义并在应用程序中主动发出的,一般由应用程序的某一部分内部处理。<BR>&nbsp;&nbsp;&nbsp; 
                        在DOS应用程序下,可以通过getchar()、getch()等函数直接等待键盘输入,并直接向屏幕输出。而在Windows下,由于允许多个任务同时运行,应用程序的输入输出是由Windows来统一管理的。<BR>&nbsp;&nbsp;&nbsp; 
                        Windows操作系统包括三个内核基本元件:GDI, KERNEL 
                        ,USER。其中GDI(图形设备接口)负责在屏幕上绘制像素、打印硬拷贝输出,绘制用户界面包括窗口、菜单、对话框等。系统内核KERNEL支持与操作系统密切相关的功能:如进程加载,文本切换、文件I/O,以及内存管理、线程管理等。USER为所有的用户界面对象提供支持,它用于接收和管理所有输入消息、系统消息并把它们发给相应的窗口的消息队列。消息队列是一个系统定义的内存块,用于临时存储消息;或是把消息直接发给窗口过程。每个窗口维护自己的消息队列,并从中取出消息,利用窗口函数进行处理。框图如下:</P>
                        <P class=content4><IMG alt="T1_3.gif (4575 字节)" 
                        height=327 src="" width=456></P>
                        <P class=content4>图1.3 消息驱动模型</P>
                        <P> </P>
                        <P> </P>
                        <P class=content4><B>1.3.3 图形输出</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 
                        Windows程序不仅在输入上与DOS程序不同,而且在程序输出上也与DOS有着很大不同,主要表现为:<BR>&nbsp;&nbsp;&nbsp; 
                        1.DOS程序独占整个显示屏幕,其他程序在后台等待。而Windows的每一个应用程序对屏幕的一部分进行处理。DOS程序可以直接往屏幕上输出,而Windows是一个多窗口的操作系统,由操作系统来统一管理屏幕输出;每个窗口要输出内容时,必须首先向操作系统发出请求(GDI请求),由操作系统完成实际的屏幕输出工作。<BR>&nbsp;&nbsp;&nbsp; 
                        2.Windows程序的所有输出都是图形。Windows提供了丰富的图形函数用于图形输出,这对输出图形是相当方便的,但是由于字符也被作为图形来处理,输出时的定位要比DOS复杂的多。<BR>&nbsp;&nbsp;&nbsp; 
                        比如,在DOS字符方式下,我们可以写出如下程序用于输出两行文字:<BR>printf(“Hello,\n”);<BR>printf(“This 
                        is DOS program.\n”);<BR>&nbsp;&nbsp;&nbsp; 
                        而在Windows下要输出这两行文字所做的工作要复杂的多。因为Windows输出是基于图形的,它输出文本时不会象DOS那样自动换行,而必须以像素为单位精确定位每一行的输出位置。另外,由于Windows提供了丰富的字体,所以在计算坐标偏移量时还必须知道当前所用字体的高度和宽度。<BR>&nbsp;&nbsp;&nbsp; 
                        3.Windows下的输出是设备无关的。在DOS下编写过Foxpro程序的读者常常会有这样的体会,在编写打印报表程序时,要针对不同的打印机在程序中插入不同的打印控制码,用以控制换页、字体设置等选项。这样的程序编写起来繁琐,而且不容易移植(因为换一台不同型号的打印机就要重新修改程序)。而Windows下的应用程序使用图形设备接口(GDI)来进行图形输出。GDI屏蔽了不同设备的差异,提供了设备无关的图形输出能力,Windows应用程序只要发出设备无关的GDI请求(如调用Rectangle画一个矩形),由GDI去完成实际的图形输出操作。对于一台具有打印矩形功能的PostScript打印机来说,GDI可能只需要将矩形数据传给驱动程序就可以了,然后由驱动程序产生PostScript命令绘制出相应的矩形;而对于一台没有矩形输出功能的点阵打印机来说,GDI可能需要将矩形转化为四条线,然后向驱动程序发出画线的指令,在打印机上输出矩形。当然,这两种输出在用户看来并没有什么区别。<BR>&nbsp;&nbsp;&nbsp; 
                        Windows的图形输出是由图形设备接口(GDI)来完成的,GDI是系统原始的图形输出库,它用于在屏幕上输出像素、在打印机上输出硬拷贝以及绘制Windows用户界面。<BR>&nbsp;&nbsp;&nbsp; 
                        GDI提供两种基本服务:创建图形输出和存储图象。GDI提供了大量用于图形输出的函数,这些函数接收应用程序发出来的绘图请求、处理绘图数据并根据当前使用设备调用相应的设备驱动程序产生绘图输出。这些绘图函数分为三类:一是文字输出,二是矢量图形函数,用于画线、圆等几何图形,三是光栅(位图)图形函数,用于绘制位图。<BR>&nbsp;&nbsp;&nbsp; 
                        GDI识别四种类型的设备:显示屏幕、硬拷贝设备(打印机、绘图机)、位图和图元文件。前两者是物理设备,后两者是伪设备。一个伪设备提供了一种在RAM里或磁盘里存储图象的方法。位图存放的是图形的点位信息,占用较多的内存,但速度很快。图元文件保存的是GDI函数的调用和调用参数,占用内存较少,但依赖于GDI,因此不可能用某个设备来创建图元文件,而且速度比位图要慢。<BR>&nbsp;&nbsp;&nbsp; 
                        GDI的图形输出是面向窗口的,面向窗口包含两层含义:<BR>&nbsp;&nbsp;&nbsp; 
                        (1)每个窗口作为一个独立的绘图接口来处理,有它自己的绘图坐标。当程序在一个窗口中绘图时,首先建立缺省的绘图坐标,原点(0,0)位于窗口用户区的左上角。每个窗口必须独立的维护自己的输出。<BR>&nbsp;&nbsp;&nbsp; 
                        (2)绘图仅对于本窗口有效,图形在窗口边界会被自动裁剪,也就是说窗口中的每一个图形都不会越出边界。即使想越出边界,也是不可能的,窗口会自动的防止其他窗口传过来的任何像素。这样,你在窗口内绘图时,就不必担心会偶然覆盖其他程序的窗口,从而保证了Windows下同时运行多个任务时各个窗口的独立性。</P>
                        <P class=content4><B>1.3.4 用户界面对象</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 
                        Windows支持丰富的用户接口对象,包括:窗口、图标、菜单、对话框等等。程序员只需简单的几十行代码,就可以设计出一个非常漂亮的图形用户界面。而在DOS环境下,则需要大量的代码来完成同样的工作,而且效果也没有Windows提供的那么好。下面我们介绍一下用户界面对象中的一些术语和相关概念。</P>
                        <P class=content4><B>窗口</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 
                        窗口是用户界面中最重要的部分。它是屏幕上与一个应用程序相对应的矩形区域,是用户与产生该窗口的应用程序之间的可视界面。每当用户开始运行一个应用程序时,应用程序就创建并显示一个窗口;当用户操作窗口中的对象时,程序会作出相应反应。用户通过关闭一个窗口来终止一个程序的运行;通过选择相应的应用程序窗口来选择相应的应用程序。一个典型的窗口外观如图1.4所示。</P>
                        <P class=content4><IMG alt="T1_4.jpg (15734 字节)" 
                        height=324 src="" width=469></P>
                        <P class=content4>图1.4 窗口</P>
                        <P class=content4><B>边框</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 
                        绝大多数窗口都有一个边框,用于指示窗口的边界。同时也用来指明该窗口是否为活动窗口,当窗口活动时,边框的标题栏部分呈高亮显示。用户可以用鼠标拖动边框来调整窗口的大小。</P>
                        <P class=content4><B>系统菜单框</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 
                        系统菜单框位于窗口左上角,以当前窗口的图标方式显示,用鼠标点一下该图标(或按ALT+空格键)就弹出系统菜单。系统菜单提供标准的应用程序选项,包括:Restore(还原窗口原有的大小),Move(使窗口可以通过键盘上的光标键来移动其位置),Size(使用光标键调整窗口大小),Minimize(将窗口缩成图标),Maximize(最大化:使窗口充满整个屏幕)和Close(关闭窗口)。</P>
                        <P class=content4><B>标题栏</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 
                        标题栏位于窗口的顶部,其中显示的文本信息用于标注应用程序,一般是应用程序的名字,以便让用户了解哪个应用程序正在运行。标题栏颜色反映该窗口是否是一个活动窗口,当为活动窗口时,标题栏呈现醒目颜色。鼠标双击标题栏可以使窗口在正常大小和最大化状态之间切换。在标题栏上按下鼠标器左键可以拖动并移动该窗口,按右键弹出窗口系统菜单。</P>
                        <P class=content4><B>菜单栏</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 
                        菜单栏位于标题栏下方,横跨屏幕,在它上面列出了应用程序所支持的命令,菜单栏中的项是命令的主要分类,如文件操作、编辑操作。从菜单栏中选中某一项通常会显示一个弹出菜单,其中的项是对应于指定分类中的某个任务。通过选择菜单中的一个项(菜单项),用户可以向程序发出命令,以执行某一功能。如选择“文件-&gt;打开...”菜单项会弹出一个打开文件对话框,让用户选择一个文件,然后打开这个文件。<BR>&nbsp;&nbsp;&nbsp; 
                        一般的,以“...”结尾的菜单项文本表明选择该项时会弹出一个对话框,让用户输入信息,然后执行操作,如“文件-&gt;打开...”。若不以“...”结尾,则表明选择该菜单项直接执行一个动作,如“编辑”菜单下的“粘贴”菜单项。若一个菜单项呈现灰色,则表明该菜单当前不可用。有时菜单项上还有加速键,加速键是一种键盘组合,它是菜单项的一种替代方式,可以让用户通过键盘直接发出命令;在键盘上按下这一键盘组合,就等效于选择了相应的菜单。如“粘贴(P) 
                        CTRL+V”,就表示粘贴操作的加速键是CTRL+V,按下CTRL+V就执行粘贴操作。</P>
                        <P class=content4><B>工具条</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 
                        工具条一般位于菜单栏下方,在它上面有一组位图按钮,代表一些最常用的命令。工具条可以显示或隐藏。让鼠标在某个按钮上停一会儿,在按钮下方会出现一个黄色的小窗口,里面显示关于该按钮的简短说明,叫做工具条提示(ToolTip)。用户还可以用鼠标拖动工具条将其放在窗口的任何一侧。</P>
                        <P class=content4><B>客户区</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 
                        客户区是窗口中最大的一块空白矩形区域,用于显示应用程序的输出。例如,字处理程序在客户区中显示文档的当前页面。应用程序负责客户区的绘制工作,而且只有和该窗口相对应的应用程序才能向该用户区输出。</P>
                        <P class=content4><B>垂直滚动条和水平滚动条</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 
                        垂直滚动条和水平滚动条分别位于客户区的左侧和底部,它们各有两个方向相反的箭头和一个深色的长度可变的滚动块。可以用鼠标选中滚动条的箭头上下卷滚(选中垂直滚动条时)或水平卷滚(选中水平滚动条时)客户区的内容。滚动块的位置表示客户区中显示的内容相对于要显示的全部内容的位置,滚动块的长度表示客户区中显示的内容大小相对于全部内容大小的比例。</P>
                        <P class=content4><B>状态栏</B></P>
                        <P class=content4>&nbsp;&nbsp;&nbsp; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -