windows期末复习

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章:双字节字符集和Unicode字符集有何区别?采用双字节字符集有何问题?双字节字符集(DBCS)编码是0-255,DBCS含有1字节代码与2字节代码,而Unicode是统一的16位系统,这样就允许表示65536个字符。Unicode中的每个字符都是16位宽而不是8位宽。在Unicode中,8位二进制表示一个数值已没意义,而在双字节字符集中仍然处理8位数值。双字节字符集并不是所有字符由两个字节代表,这会引起附加的程序设计问题,例如字符串的长度计算。而且处理双字节字符集非常复杂。什么叫宽字符?什么是Unicode字符?它们有何区别?用多个字节来代表的字符称为宽字符,Unicode只是宽字符编码的一种实现,Unicode是宽字符的一种,而宽字符并不一定是Unicode。讲述_Unicode识别子,TCHAR.h头文件的作用。P17TCHAR.h为以字符串作为参数的标准库函数提供一系列的替代名称。第三章:资源描述文件的作用是什么?资源编译器的功能是什么?资源描述文件的作用是把应用程序或进程用到的资源记录其中。资源编辑器的功能是根据RC文件中模板提供的信息生成资源再编译成所需要的二进制文件,所以现代的资源编译器本质上把资源生成器、编译器联合在一起,利于编程人员的使用。讲讲匈牙利命名惯例的约定,还要记住哪些习惯用法?匈牙利命名惯例的约定有两条:1.标识符以一个或者几个小写字母开始,这些小写字母表示标识符的数据类型;2.大小写混杂写,使得标识符具有一定的含义,便于理解,增强可读性。习惯用法:在命名结构变量时,可以用结构名的小写字符序列作为变量名的字首,或者用整个结构名用作结构变量名。解释事件驱动程序的原理,并和过程式程序进行比较。事件驱动意味着操作系统的每一部分之间,以及操作系统与应用程序之间是通过“消息”进行通信联系的。计算机中一个事件驱动程序变成一个消息,如鼠标事件产生鼠标消息。它不仅执行程序,而且与应用程序对话,而应用程序也会回话,它们相互通信。它们都必须设置变量、结构,并实现初始化和创建应用窗口。但Windows程序在初始化和创建应用窗口结束后,其他活动基本停止,应用程序只是在执行一个无限循环,坐等用户的输入消息。过程式程序是单执行流程式样,编写过程式程序和人的思维习惯相一致,检查错误也比较方便,操作系统也只是简单的执行程序,然后就是等待它的完成。何谓动态链接?何谓静态链接?动态链接库文件的后缀是什么?动态链接:程序执行到某个函数时,到动态链接库中取用一份公有的机器码,这种执行时进行链接的方法称为动态链接。动态链接库文件的后缀是.DLL。静态链接:在编写高级语言程序时,势必会调用许多函数,这些函数的机器码在链接过程中会合并到程序本身中,这就称为静态链接。第四章:解释窗口类结构名与窗口类变量,为什么要填写窗口类条款?注册的作用是什么?任何窗口都是属于某应用程序或进程,因而,窗口隶属的进程入口地址也必须在条款中记录下来,所以,窗口类条款是窗口共同书写的记录。注册窗口类的作用是使得Windows操作系统知道这个窗口类,把Windows操作系统和这个窗口类联系起来,使得窗口类处于Windows操作系统的控制之下。用哪个函数创建窗口?它是几个参数?请解释每一个参数?P78-79。应用程序中用的窗口类名从哪里取得?应用程序中窗口类名与应用程序名相同。主程序WinMain和WndProc是如何联系的?WinProc窗口处理函数是一个回调函数,它是用来处理消息的,是由Windows调用的。在注册窗口类的时候指定了窗口处理函数的入口地址,应用程序获得的消息都交给此入口地址对应的窗口处理函数来处理。解释消息循环中的几个函数?P80。第五章:解释系统全局窗口类、应用全局窗口类、应用专用窗口类。系统全局窗口类又称预先定义窗口类,32位Windows提供了7种预先注册好的窗口类,在开发者编写的代码里无需进行任何注册。一般情况下用户既不能破坏它们,也不能删除它们。和16位Windows不一样,系统对预先定义窗口类信息的控制是依单进程为基础的。在32位Windows启动阶段就完成了预先定义窗口的注册。应用全局窗口类是属于应用程序的,因此,这个应用程序生成的任何进程都可用这个全局窗口类,而不是注册。应用专用窗口类:在32位Windows里,应用程序创建一个进程就要复制应用程序的全部代码,执行这个进程时就要填写窗口类结构条款、注册窗口类,这个窗口类属于这个进程,称为应用专用窗口类。这种窗口类是从生成进程过程中注册窗口类开始到进程中断这段时间才是活动的。32位Windows支持哪三种窗口类?讲述每种窗口类的用法。系统全局窗口类:预先定义好的窗口类。应用全局窗口类:应用专用窗口类:请解释窗口类结构名和窗口类名。窗口类结构中常用的有哪几个载入函数?它们的用法如何?第六章客户区是窗口中的哪部分?客户区是窗口中可以由应用程序任意书写和传递窗口信息的部分。用哪个函数使得窗口客户区称为无效区域?用哪个函数取得无效区域的坐标?InvalidateRect函数GetUpdateRect函数Windows环境下,如何实现与设备无关的输出,为什么输出一定要通过GDI函数?在Windows系统中为每一个设备建立一个数据结构,这个结构记录了设备输出时的详细要求,如文字的颜色,这个数据结构称为设备描述表,简称DC。Windows系统中使用设备就是抽象成使用DC。这种把设备抽象称为DC,这是实现设备无关性的关键。每个GDI函数就是按照hdc来调用设备的,GDI函数通过设备进行输出就变成通过DC进行输出。之所以输出一定要通过GDI函数时因为执行GDI函数输出时,可得到与设备无关的输出。解释代号的意义?解释DC的意义?hDC是GDI函数通向窗口或设备的“通行证”。有了hDC代号,编程人员就能自如地在客户区上绘图。应用程序根据hDC代号就知道输出到哪一个窗口或哪一个设备。DC是实现设备无关性的关键。解释GDI函数实现与设备无关输出的过程。Windows系统中使用设备就是抽象成使用DC。这种把设备抽象称为DC,这是实现设备无关性的关键。每个GDI函数就是按照hdc来调用设备的,GDI函数通过设备进行输出就变成通过DC进行输出。有哪两种方法获得屏幕的hDC?1.利用GetDC(hWnd)取得窗口hDC2.处理WM_PAINT消息期间用BeginPaint获得hDC的方法。InvalidateRect所决定的重画区和BeginPaint所决定的重画区有什么区别?程序调用BeginPaint时,在大多数情况下,fErase被标志为FALSE(0),这意味着Windows已经擦除了无效矩形的背景。在调用BeginPaint后PAINTSTRUCT结构的fErase条款将成为TRUE(非零)。而程序通过调用InvalidateRect函数使客户区中的矩形失效,则该函数的最后一个参数会指示是否擦除背景。如果这个参数为FALSE,则执行InvalidateRect时Windows将不擦除背景,反之,则会擦除背景。什么情况下产生WM_CREATE窗口消息?什么情况下产生WM_PAINT窗口消息?为什么WM_SIZE消息后必然跟着一个WM_PAINT消息?解释滚动条的范围和地址,设置滚动条的范围用哪个函数,设置滚动条的地址用哪个函数?所谓“范围”是一对整数,分别代表滚动区的最小值和最大值,也就是滑动区的两端;所谓“地址”是滚动滑块在此范围内的地址。当滚动滑块在滚动区的顶部(或左部)时,滚动滑块的地址是范围的最小值;在滚动条的底部(或右部)时,滚动滑块的地址是范围的最大值。设置范围函数:SetScrollRange(hwnd,iBar,iMin,iMax,bRedraw);设置地址函数:SetScrollPos(hwnd,iBar,iPos,bRedraw);单击滚动条时会产生通知码,通知码在哪个参数中?意义如何?WParam消息参数被分为一个低位字段和一个高位字段。wParam的低字组是一个数值,它指出了鼠标对滚动条进行的操作,这个数值称为通知码。何谓滚动条块当前地址,它一般是整数吗?何谓滚动滑块的大小?何谓“页面大小”?何谓范围?滑块在滑动区中的当前位置称为滑块当前位置,滑块在滑动区中的当前地址是整数值,从滑块的起始地址到滑块的当前地址称为滑块的滑动长度。显示区显示内容的长度称作“页面长度”。范围是指可能显示的文件长度。第七章什么是GDI对象?某些函数不要求设备描述表代号,这些函数称为GDI对象。画线函数和画图函数的区别是什么?画图函数非但要画边界框,还要在画出的区域中填入颜色,而画线函数仅仅是画出边界线。画椭圆线的函数是什么?画椭圆的函数是什么?Arc函数Ellipse函数建立、选择和删除画笔用哪三个函数?建立画笔:CreatePen函数。选择画笔:SelectObject函数。删除画笔:DeleteObject函数。取得设备描述表代号的方法是什么?1.利用GetDC(hWnd)取得窗口hDC2.处理WM_PAINT消息期间用BeginPaint获得hDC的方法。取得设备描述表中信息的函数是什么?iValue=GetDeviceCaps(hDC,iIndex);解释设备描述表的构成。修改、取得设备描述表的某属性都有专门的函数,一般在什么情况下进行?P148何谓解析度?屏幕的解析度和打印机的解析度有何不同?如何计算解析度?每个度量单位内的像素数目称为解析度。屏幕显示器和打印机是两个不同的设备,它们的区别是“解析度”的定义不一样,计算机与设备连接的方式不一样。打印机,我们经常用“每英寸的点数”表示解析度。而屏幕显示器的解析度是水平和垂直的总像素数来表示的。像素大小除以常用度量大小就得到解析度。何谓像素的色彩数?它和哪些因素有关?彩色显示器中图形的色彩数等于表示像素可能取的颜色数。二进制位数越多,表示的颜色就越多,像素的色彩也就愈多。COLORREF值是什么意思?何谓“RGB彩色”?COLORREF值是一个32位的无正负号长整数。COLORREF值按照红、绿、蓝的亮度指定了一种颜色,通常叫做“RGB色彩”。什么是设备坐标?什么是逻辑坐标?Windows中,一切设备都用统一的坐标,此坐标称为设备坐标。设备坐标是以像素为度量单位的坐标。Windows中还有一种长度单位叫做逻辑坐标,逻辑单位就是数学意义上的坐标,抽象意义上的坐标,如像素。长度单位英寸、米等度量单位的坐标都称为逻辑坐标。第八章:简述键盘输入的流程。这首先要从键盘的输入开始,一个键盘输入称为一个键盘事件,键盘事件发送到Windows系统,Windows系统就发出一个相应的键盘消息。何谓具有输入焦点的窗口?何谓活动窗口?如何辨认活动窗口?接收特定键盘消息的窗口称为具有输入焦点的窗口。输入焦点的概念与活动窗口的概念很相近。有输入焦点的窗口一定是活动窗口或活动窗口的衍生窗口。活动窗口通常是顶层窗口。P180何谓系统消息队列?和应用程序消息队列的关系如何?系统消息队列是独立的消息队列,它由Windows维护,用于初步保存从键盘和鼠标输入的消息。当Windows应用程序处理完前一个用户输入消息时,Windows才会从系统消息队列中取出下一个消息,并将其放入应用程序的消息序列中。按照产生的按键消息分,按键分成哪两类?按键消息有哪四种形式?系统按键消息有什么特点?它在哪里处理?哪些不是系统按键消息?键盘消息可以分为按键消息和字符消息两类,这与用户在键盘上看到的两种键盘方式一样。四种形式:键按下键释放非系统键WM_KEYDOWNWM_KEYUP系统键WM_SYSKEYDOWNWM_SYSKEYUPP182什么是扫描码?什么是虚拟键码?为什么要用虚拟键码?P183OEM扫描码是由键盘的硬件所产生的代码。扫描码与键在键盘上的位置有关。OEM指的是PC的原始设备制造商所产生的代码,我们把它称作扫描码。虚拟键码是Windows设计者在WINUSER.H文件中用识别子定义的键码。数字和字母的虚拟键码是怎样定义的?数字、字母的虚拟键码是用ASCII码定义的。窗口函数中W

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功