Windows程序设计题(含简答题答案)_第1页
Windows程序设计题(含简答题答案)_第2页
Windows程序设计题(含简答题答案)_第3页
Windows程序设计题(含简答题答案)_第4页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

---《

Windows

程序设计》模拟题

单项选择题一.1.

B)。在

VC++

中,项目文件的扩展名是(

dspBA

exe)

cpp)C)dswD 不能2. )。(DBA)建立新类变量 D)插入资源

ClassWizard 在MFC 中,利用)进行消息映射 C)增加类的成员)消C当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送

3. 息。(WM_HSCROLL

WM_CHAR

)BAWM_CHANGEDC)WM_VSCROLL更新菜单状态的消息是(C)。 A)WM_COMMANDB)UPDATEC ) UPDATE_COMMAND_UID )INVALIDATED)对于消息队列描述正确的是(A)在Windows中只有一个消息系统, 即系统消息队列。 消息队列是一个系统定义的 数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗另外,每个正在 Windows 下运行的应用口。 程序都有自己的消息队列。 USER 模块传送到应用程序的消息队列中 C)系统消息队列中的每个消息最终都要被去。 应用程序的消息对列中存储了程序的所有窗口的全部消息。 D)以上都正确 6.在MFC 中,所有的控件都是( B)类的派生类,都可以作为一个特殊的窗口来处理。 A)CViewB )CWnd D )CWindow )CDialogC7. 使用GetDC() 获取的设备上下文在退出时,必须调用(A)释放设备上下文。delete())BA)ReleaseDC()Detach())DC)DeleteDC()8.希望菜单无效,应该用CCmdUI类的(A)成员函数。SetRadioEnable)B)ASetTextC))DSetCheck9.希望菜单前出现一个“√”,应该用CCmdUI类的(C)成员函数。SetRadioA)EnableB)SetText)SetCheckC)D10.下面(A)不是MFC设备环境类CDC类的派生类。CPaintDCGDI)AB)CWindowDC)CClientDCC )D 11. 在MFC 中,所有的文档类都派生于( C),所有的视图类都派生于( A)。 BA )CWindowCCView))CDocumentD )CFormView--------第1页--------采用C++进行绘图时,(B)用于指定图形的填充样式,(

A)用于指定图形的边框样式。

A)画笔

B)画刷

C)区域

D)位图

Windows(C)包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由将它们送入应用程序消息队列中,由程序来处理消息。 A)系统消息 B)用户消息 D)控制消息) 输入消息 C B)。.项目文件的扩展名是( 14cppD)A)exeB )dspC)dsw在MFC中,文档负责将数据存储到永久存储介质中,通常是磁盘文件或数据库,存取过程称为(

B)。

A)文件访

C)文件读

问B)串行化 写

D)格式化 在

VC++在编程环境中,运行程序的快捷键是

16.

A)。6.0

A)Ctrl+F5B

F7C

)Ctrl+F7D

)F5在

VC++A

)17.6.0

。 在编程环境中,设置和取消断点的快捷键都是(

D)

A)

F9B

F5C

F11F10中,在编辑某菜单项时,若要指明该菜单项是一个弹出式子菜单,必须 MFC18. 在)。选择属性对话框中的( BGrayed))

InactiveDB

Pop-upC)ASeparator时,必须调用(

和GetDC()C)释放设备 19.

获取的设备上下文在退出使用 GetWindowDC()上下文。 Detach()D delete()ReleaseDC())C))A)DeleteDC()B B)代表整个窗口的显示设备)代表窗口客户区的显示设备上下文, (C在20. MFC中,( 上下文。 CMetaFileDCCWindowDCC )BCClientDC )D)A)CPaintDCB21. 对话框的功能被封装在()类中。CDialogB )CWnd )A CCmdTargetCObjectC)DWindow(C)包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然 22.s后由D)用来与 Windows 的控制对象, 将它们送入应用程序消息队列中,由程序来处理消息; (如列表框、 按钮、复选框等进行双向通信。 当用户在列表框中改动当前选择或改变了复选框 的状态时发出此类消 息。D )控制消 A)系统消息 B)用户消息 C)输入消息 息生成 1个只具有确定和取消按钮的消息框,其参数为 23. C)。B)MB_YESNOA)MB_OKMB_RETRYCANCELD )C)MB_OKCANCELC )函数,设置 24. 在Windows 程序设计中如果加入了滚动条。设置滚动条的范围使用( 滚--------动条的位置使用( E)函数,获得滚动块的当前位置使用 F()函数。 B)SetRange())ASetPos() D)GetPos()())CSetScrollRange F)GetScrollPos() ()SetScrollPosE ) 第2页--------G)GetScrollRange () 25. 消息循环的处理过程如下:A)函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到

msg

结构变量中,同时该函数返回TRUE

得到消息

msg

后,(

B)把来自键盘的命令翻译成

WM_XXX

消息命令形式。(

E)函数通

知Windows 把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由 根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。 WindowsPostMessage()translateMessage()C )A)GetMessage()B )DispatchMessage()E)D)SendMessage()B)。以下变量命名正确的是(26.如果要严格按照匈牙利命名法命名1个局部窗口句柄,m_pWnD)Bg_pWnddg_hWnd)m_hWndC)A)编程约定中,应用程序接口的英文缩写是在Windows27.()。AC)MDI)GDI)AAPIB)SDID编程约定中,软件开发包的英文缩Windows在(28.写是。C)SDISDKMDIDC)))A)APIB编程约定中,图像设备接口的英文缩写是在Windows29.C()。SDIGDIMDI)C)A)APIB)Dunsigned以下对应于30.Blong的数据类型为:()A))DBYTEWORD )INTCB )DWORDD31. 下列选项中,不属于匈牙利命名法属性部分的是 ()。d_) c_DA )g_B) m_C) A ()。32. 如果要严格按照匈牙利命名法命名 1个全局窗口句柄, 以下变量命名正确的是

m_pWndg_pWndD))

g_hWndBm_hWndC

)A)

B)。33.

下列Windows

数据格式中,代表设备句柄的是(

HFONTHDCC)HINSTANCED )A)B) 在一个窗口的正常运行的主窗口创建语句做如下改动:

HWNDWindows34. hWnd=

程序中,把CreateWindow(NULL,szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);C)。则下列说法正确的是(程序仍然正常运行,与改动前相比没有变 A) 化程序出现编译错 B) 误程序编译通过,但没有窗口显示)程序正常运行,窗口标题变)DNULL为窗口程序的流程为:典型的Windows35.

A ()

消息循环显示窗口注册窗口类

A

->创建窗口

->->

更新窗口

->

B消息循环更新窗口注册窗口类

->

->显示窗口

->->

创建窗口)消息循环显示窗口注册窗口类创建窗口 C) -> ->->更新窗口 -> 消息循环显示窗口更新窗口创建窗口注册窗口类)D ->->->->true 。( D )菜单编辑器中,如果要设置某个项为分隔线,那么这个项的哪个属性为

36.Separator)

Visible

)AB

EnableCGrayed

)D)--------B )在 Windows 消息机制中,菜单消息类型是:37.)BA)WM_COMMANDWM_PAINTWM_CLOSEC )WM_CREATED键值是 ( A )?尠38. 在Windows盘的↑B) WM_KEYDOWNVK_UPA )第3页

。尠键的虚拟编程中,代表键--------C) VK_DOWND )WM_KEYUP响应键盘按键按下消息 39.WindowsWindows

在编程中,消息是( B)。

B

A)

VK_UPWM_KEYDOWNC)

VK_DOWNDWM_KEYUP

)在

A键后,返回的

Windows

消息是

40.Windows

B

)。 编程中,按下键盘的

WM_KEYDOWNB

)A

VK_ADIK_A

A)DC

)编程中,按下鼠标左键产生Windows

41.

消息是(的

B

)。Windows

A)WM_LBUTTONDOWNBWM_KEYDOWN

WM_RBUTTONDOWNC)

WM_LEFTD

)下列哪个缩写是微软提供

42.

)C++语言的帮助库?(

B 的

C)

SDKMSDNAPIDMFC )B)A)编程中,定时器消息是Windows

B

43. ()

B

WM_TIMERWM_TIMEA

))D

WM_COMMANDC

)WM_ON_TIMED)GDI环境中,窗口的坐标系是如何构成的?(轴正方向为竖直朝 A左上角为原点, y x )轴正方向为水平向 右,上轴正方向为水平向 x中间为原点,B)y右,轴正方向为竖直朝上 轴正方向为竖直朝轴正方向为水平向y左下角为原点,x)C右,下轴正方向为竖直向左上角为原点,xD)轴正方向为水平向y右,下B不能支持的是:()45.以下选项中,GDIB位图)Flash动画A)D)文字直线和曲线C)的全称为:46.设备环境DC(B)DeviceContexts)DeviceContentA)BDeviceConter)DeviceConfigDC)的作用是47.InvalidateRect(B ) B)使一个矩行区域变为无效,从而可以重绘A)删除一个矩形 )GDI 资源 使一个矩形区域变为无效,从而释放部分C擦除一个矩形区域D)48.已知窗口为缺省状态,有如下代码:HDChdc=GetDC(hWnd);HPENhpen=CreatePen(1,1,RGB(255,0,0));SelectObject(hdc,hpen);Ellipse(hdc,050,50,200,200);则这段代码的执行效果是()。B1绘制个黑色的椭圆形边框,无填充颜色)A1)B绘制个红色的椭圆形边框,无填充颜色)C个黑色的椭圆形,填充为黑色,无边框绘制1D绘制)1个红色的椭圆形,填充为红色,无边框--------49. 已知有如下代码:HDChDC=GetDC(hWnd);

LineTo(hDC,100,100);则这段代码的执行效果是(A)从窗口的左上角至坐标B)没有绘制任何图形 第

A)。(1004页

100)绘制

1条直线--------标

C)从窗口的任意一点开始至坐 条直线(100, D)从鼠标在窗口的位置至坐标

100)(100

绘制 1,100)绘制一条直线C以下函数中不受画刷影响的函数是:()Ellipse )A)RectangleBPolygon))LineToDC51.C如果要创建一个宋体字体,那么字体描述中哪个属性为“宋体”?()A

)B)

lfQualitylfCharSetlfStrikeOutlfFaceNameD约定中,位图句柄为(在Windows

)C)52.B)。)B

编程HBITMAPHGDIA

HPENC)

HDC

)DA)1位位图)?(下面哪个步骤能实现透明贴图(模板位图为单色的使用模板位图作与操 ->原位图与背景作异或操作 A)位图和背景像素作异或操作 作->原位图与背景作异或操->B )使用模板位图作与操作 位图和背景像素作异或操作作->C)位图和背景像素作异或操作->原位图与背景作异或操作->使用模板位图作与操作位图和背景像素作异或D )位图与背景作异或操作 -> 操作 ->使用模板位图作与操作

在函数中进行光栅化处理方式中,

54. 1个值说明是要进行或运算?

D

)BitBlt

哪A)SRCCOPY

)SRCANDB)

SRCPAINT

SRCINVERTDC

动态链接库文件的后缀名为

B 55.

)。()B

objexeD

)CA

libdll

.

二多选题),则以下说法正确的是 BC m_pTemp1. 。(已知严格按照匈牙利命名法命名的变量

A)

个类成员变量

B)该变量是

1个全局变量

1 该变量是

C)

1个私有变量个指针变量

D)

该变量一定是

1

该变量是

)WM_PAINT

下列哪种情况下系统可能向窗口发送消息?

ABCD

2 窗口最初创建时 A) 窗口移动后部分区域由不可见变为可见B) 窗口大小改变后 C) D) 滚动条滚动后 )。在注册窗口类中,不需要进行的操作是( 3. BCB)A) 载入图标确定窗口大小确定窗口类名 D)C)称确定窗口标题 AB 关于的说法正确的是和GetMessage

PeekMessage4.

)(

A)PeekMessage立即返回

将会等待消息到来

B)GetMessage

等待消息到来

C)PeekMessage

立即返回

D)GetMessageBD

)。

5.

关于动态菜单,以下说法正确的是(

A)函数可以弹出菜单

LoadMenu

B)CreatMenu

函数

用于建立空菜单--------C)函数DeleteMenu用于删除整个菜单函数InsertMenu用于在菜单中插入1个菜单D)项以下关于Windows的鼠标消息,说法正确的是BD)6.(。A)中得到wParam鼠标的按键消息种类可以从B)中得到message鼠标的按键消息种类可以从第5页--------C)鼠标的位置信息可以从 wParam 中得到 D) 鼠标的位置信息可以从 lParam 中得到 7. 已知语句SetTimer(NULL,1,100,NULL) ,则以下说法正确的是(AD )。 A)设置了一个定时器,该定时器不能正常起作用

B)设置一个定时器,能够正常起作用

C) 秒

1设置了一个定时器,时间间隔为

100 毫

D)

秒设置了一个定时器,时间间隔为下列选项中属于

WindowsGDI资源的

ABC

)8.

是( 。A)D)B) 画笔 C) 字体 窗口位图 )能用于绘制直线的函数为:(AB 9. PolyBezierC)ArcD)A)LineToB)Polyline )10. 画笔的线型包括:( ABD A)B)虚线波浪线实线C)点划线11.ABC()创建画刷的函数有:CreateSolidBrushCreateHatchBrushB)A)CreateLogicBrushCreatePatternBrushD)C)消息机制中,消息 Windows 在12. ABC )。3系统 大关键要素是(A) B) 消息队列 消息循环 C)D) 消息映射消息处理函数 消息?13.下列哪种情况下系统可能向窗口WM_PAINT ( BCD )发送 窗口最初创建时 A) 窗口移动后部分区域由不可见变为可见 B) C)窗口大小改变后D)滚动条滚动后ABC)14.匈牙利表示法的变量一般分为哪几个部分?(g_)B)类型A)属性(例如C)后缀描述

D)15ABD

.下列选项中,可以用

Windows

句柄标识的有()。 A)窗口 B) 文件 C) 消息 D) 字体16)。.关于 Windows 句柄,下列说法正确的是( ADA)每个运行着的 Windows 程序都有对应的Windows

实例句柄同1个Windows程序打开多次时,对应同1个实例句柄 C)1 个Windows 实例句柄只能对应 1个窗口句柄D)1 个Windows 实例句柄可以对应多个窗口句柄 三、名词解释

1、事件:可能触发计算机程序做出相应反应的刺激 2、句柄:为了区别于普通变量的标识, Windows 把这种复杂对象的标识叫做句柄 3、消息:为了描述事件的各种信息(例如,何时何地发生了何种事件等)

Windows定义

了一个结构,这个结构就叫做”消息”

API

函数:由操作系统提供的,用户可以使用的函数就叫做

的4、Windows API 应用程序程序:使用软件开发工具包开发出来的5、WindowsSDK Windows Windows6 、资源:资源就是一种可供 应用程序利用,可单独编辑,并可动态加载的数据 属性的操作,即与绘图相关的操Windows 把用于改变 DC 、图象设备接口(7GDI ):作都制作成函数,这些函数的集合就叫做图形设备接口 类GDIDC 类:在面向对象程序设计思想中, 把、8CDC 和函数封装到一起形成 CDC 9、回调函数:系统调用用户编写的函数过程叫做“回调” ,所以这种被系统调用的函数也--------第6页--------叫做“回调函数” 10、无效显示区: 在有效提高拆分窗口显示更新效率的方法中, 程序只重绘必须重绘的区域11、控件: Windows 设计了一些具有图形外观的程序实体, 这些程序实体在鼠标或键盘的作 用下会使程序出现不同的响应,这些可以接收或者产生事件的程序实体就叫做控件 12、类信息表 :MFC 程序在不同的场合下还经常用到类的其他信息,于是 MFC 就把这些信 息统统都放在映射表项中,并把它叫做类消息表 13、消息循环:while(GetMessage(&msg,NULL,NULL,NULL)){TranslateMessage(&msg);DispatchMessage(&msg);} 四.填空题 1、在MFC 中,用户可以通过项目工作区窗口的 ResourceView 视图来查看资源。 2、一个单文档的 MFC 应用程序框架一般包括5个类:应用程序类、 框架窗口类、 视图类、 文档类和文档模板类。 3、 Windows 是一个基于消息的消息驱动系统。 4、项目工作区文件的扩展名是 dsw。 5、MessageBox 函数弹出一个小的对话框向用户显示短信息,并将用户最终的选择返回给 调用者。 6、在通常情况下,视图派生类的成员函数中通过调用 GetDocument 函数得到当前文档对 象的指针。 、 Windows 程序中的消息有窗口消息、命令消息和控件通知消息三种类型。 7 、MFC 中的集合类包括数组、列表(链表)、映射(顺序可变)。、在进行绘图时,画刷用于指定图形的填充样式,画笔用于指定图形的边框样式。9WM_KEYDOWN,10、用户按下键盘按键并放开的过程中,将产生至少三条消息:WM_KEYUP

。WM_CHAR

。中

API

的中文译文是应用程序接口

11、

WindowsAPI

MFC

的中文译文是微软基础类库

、12

的中文译文是图形设备接口。

13、GDI

CWinApp

可以得到 应用类指针。

14、全局函数AfxGetApp()

OnDraw()

函数中。

15、

MFC

中可自动重绘的绘图代码一般位于项目的视图类的GetDocument()函数可得到对应的文档对象指针。16、在视图中, GetNextview() 配合可用来遍历所有和文档关联的视

17、在文档中,

GetFirstviewPosition()

和 图。

。类来描述一个矩形区域的大小

18、在

MFC

中,用

CRect因此在使用自己定义的画笔

19、在任何时刻设备环境中必须有一支画笔, 并且只能有一支。 SelectObject() 时,要使用 CDC的函数把默认画笔替换为自己定义的画笔,这个函数是 。 MFC的缺省的映射模式是 MM_TEXT ,对应的单位为像素 。20、 21() 、在视图类中为了访问与视图关联的文档对象中数据,应该先调用 GetDocument函数得到 相关联文档对象指针 。 22、利用 MFCAppWizard 可以生成界面的程序。GetActiveDocument

SDI 界面、MDI 界面和基于对话框23 、在框架窗口中,()函数可得到当前活动文档

指针,

GetActiveView()函数可得到当前活动视指针。 CDialog,用户自定义对话框类都是从它派生而来。 24.MFC对话框类的基类是25.Windows 系统是一个消息响应事件驱动的操作系统,消息是应用程序与操作系统交互的手段。 第7页--------GetMessage()被用来从消息队列获取消息,函数TranslateMessage()用来把键盘消息转换为字符消息,函数DispatchMessage()用来向系统派送消息。五、选择填空题(每空

1分,共

15 分)

1、

B

代表窗口客户区的显示设备上下文,

C代表整个窗口的显示设备上下文。

A、

CPaintDCB

CClientDCC

、CWindowDCD

CMetaFileDC

2、消息循环的处理过程如下

:函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回; 一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后,B把来自键盘的命令翻译成WM_XXX消息命令形式。E函数通知Windows把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,

而由

Windows

根据消息去调用窗口函数,

因此,窗口函数经常被称为回调函数。

A、GetMessage()B

、translateMessage()C

、PostMessage()

D、SendMessage()E 、DispatchMessage()3、滚动条类 CScrollBar 的成员函数规定了滚动条的操作。设置滚动条的范围使用 C 函数,设置滚动块的位置使用E函数,获取滚动块的当前位置使用

F函数。

A、SetPosB

SetRangeC

SetScrollRangeD

GetPosE、SetScrollPosF

、GetScrollPosG

GetScrollRange4、所有的文档类都派生于 C,所有的视图类都派生于 A。A、CViewB 、CWindowC 、CDocumentD 、CFormView5、C包括键盘和鼠标的输入。 这一类消息首先放在系统消息队列中, 然后由 Windows 将它们送入应用程序消息队列中, 由程序来处理消息; D用来与 Windows 的控制对 象,如列表框、按钮、复选框等进行双向通信。当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。

A、系统消息

B、用户消息

C、输入消息

D、控制消息

6、使用

B获取的设备上下文在退出时,

必须调用

ReleaseDC()

释放设备上下文。

A、GetWindowRect()B

、GetDC()D、

GetClientRect()C、BeginPaint

()

六.判断题

语言的一套全新的程就是独立于

C1.

所谓的

WindowsAPI

× )序设计语言。(

数据类型

TCHAR2.

Windows

编程约定中,CHAR

数据类型和

× )是相同的。(匈牙利命名法是所有程序都必须遵循的一个规则,变量的命名必须按照规则3.×)进行。( 4. )。( √ 在Windows 编程约定中,代表窗口句柄的数据类型是 HWND 编程中,使用窗口句柄来操作具体的窗在Windows5.口。(√)的消息结构中,键盘的按键字符信息被保Windows在6.)lParam存在中。(×消息表示创WM_TIMERWindows在消息机制中,7.1建了个定时器。(×)程序,其入口函数必须名为所有的Windows8.WinMain。(×)的区别在于前者投递消息到队列,而后者直接调SendMessage9. PostMessage 和√)用消息响应函数。( × ) Windows10. 在编程中,AppendMenu 可以在菜单的任意位置插入新的菜单项。 (编程中,菜单可以在资源视图中设计,一旦载入程序,就不能再被 11.在Windows×)更改。(12.WM_KEYDOWN 编程中,键盘按键弹起时,会返回消息在 Windows 。(×) 13. 编程中,鼠标消息中不包含任何键盘信息。(在 Windows × )个程序中只允许设置一个定时器。 1 Windows 在编程中, 14.(× )--------画笔颜色构成是0x00BBGGRR,其中B、G、R分别代表1位16进制数表示蓝、绿和红色分量的大小。(√)16.对于GDI点阵字体和GDI笔划字体,Windows 都可以合成粗体、斜体、加底线和加删 第8页--------除线,而不需要为每种属性另外储存字体。 (√)17.中指定的画刷是用于画矩形本身和边 FillRectFrameRect中指定的画刷是用于画矩

框,形的边框。

(×

18.Win32API

可以直接读取所有的图像格式。

( × )19.打开一个项目,只需打开对应的项目工作区文

件。(√ )20.基于对话框的应用程序,也有文档类和视图类。 (×

21.所有的

Windows

应用程序都是消息驱动

的。 (

))是更新命令用户接口消息。

22.

COMMAND(

菜单消息类型

× )(函数。

CPen

对象的DeleteObject23

.删除

CPen

对象可调用(

× )24.

CBrush

GDI

对象。(√

)函

main25.

Windows

应用程序的入口也是

数。(×

)七.简答题应用程序的主函数有哪三个主要任Windows1 . 务 2.运行程序后单击鼠标右键弹出对话框提示“您按下了鼠标右键” 对话框。简要说明设计步 骤。参考答案: (1)新建基于单文档的应用程序; (2)用类向导映射鼠标右键消息; ”);(3)在消息函数中添加代码: MessageBox( “您按下了鼠标右键 3、.利用 AppWizard 生成默认的 SDI 应用程序My时,向导自动生成的哪四个类?及其相应的功能。参考答案:CMainFrame(构建应用程序,显示窗架)CMyApp (整个应用程序) CMyDoc (管理数据)CMyView(显示数据)4.创建窗口的五个步骤:参考答案:1)定义窗口2)注册窗口3)创建窗口4)显示窗口5)消息循环5.如何显示和更新窗口?答:调用函数ShowWindow显示窗口,调用函数UpdateWindows 更新窗口。 6.什么是消息循环? 答:在创建了窗口的应用程序中, 应用程序将不断地从消息队列中获取消息, 并将消息指派给指定的窗口处理函数来处理, 然后再回来从消息队列获取消息, 这个不断重复的工作过程叫做消息循环。 indows 系统之间的关系。Windows 应用程序的主函数、窗口函数与 W7.说明 应用程序的主函数和窗口函数都是系统调用的函数,主函数是在应答: Windows而窗口函数是主函数在消息循环中获得消息用程序启动时由系统首先调用的函数,并把消息派送给系统之后,由系统调用的用来处理消息的函数。 作用是什么?的文档类的成员函数. 8UpdateAllViews 答:通知文档所对应的所有窗口同时进行重绘。--------9.MFC应用程序的界面有哪三种方式? 答:(1)单文档界面;(2)多文档界面;(3)基于对话框界面。10.WinMain() 函数的工作。 第9页--------WinMain() 函数是 Windows 程序的入口点WinMain 中进行注册窗体类、 建立窗体、显示窗体、更新窗体、建立消息循环 11.非

在MFC

的Windows 程序中,WM_PAINT 消息中怎样获得客户区的设备环境句柄。 和不是 WM_PAINT 消息中怎样获得客户区的设备环境句柄。

BeginPaint----------EndPaintGetDC---------------ReleaseDC(

成对出现

)

利用GetDC

函数获取设备环境句柄

12.句柄的含义。

句柄是一个通常为 32 位的无符号整数( unsignedint ),它代表一个内核对象,是内核对象在应用层的表示。 13.在MM_TEXT 映射模式下,什么情况下客户坐标和逻辑坐标可能不同。 当窗口客户区有滚动条时客户坐标和逻辑坐标可能不同 14.GetMessage() 函数在什么情况下返回 00WM_QUIT 消息时返回在接收到 15.Windows 中应用程序的输出是怎样进行的。 通过设备描述表 DC(DeviceContext )来进行应用程序与物理设备之间的交互16.当程序中某个函数改变了数据而需要重WM_PAINT 不会被自动调用 ,这时需要怎样间接调用它。 调用使用 InvalidateRect()17.键盘消息处理函数

OnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags)

中的主要参数。

有没指按下按键的虚拟键码;

nRepCnt

按键按下的次数;

nFlags

参数UINTnCharAlt shift 、ctrl 、有其他键同时被按下;如 中的SetROP2()

的作用。

18.

DC

设定绘图模式

.扩展名为

.rc

的文件是什么。

19

资源文件

GDI

绘图函数所使用的参数。

20.

GDI

绘图函数使用的逻辑坐标

21.当用户按下某个字母键时消息发生的顺序。WM_KEYDOWN->TranslateMessage()->WM_CHAR22.常用的客户区鼠标消息有哪些 按下鼠标左键WM_LBUTTONDBCLK 双击鼠标左键WM_LBUTTONDOWN 双击鼠WM_RBUTTONDBCLKWM_LBUTTONUP 释放鼠标左键WM_MOUSEMOVE 移动鼠标 释放鼠标右键标右键WM_RBUTTONDOWN 按下鼠标右键WM_RBUTTONUP .什么样的窗口才能接收键盘消息 23Windows 有活动窗口 Windows 中规定只有具有输入焦点的窗口才能接收键盘消 只产生按键消息键盘消息分为哪几类24.WM_SYSKEYDOWN,WM_SYSKEYUP(WM_KEYDOWN,WM_KEYUP)WM_CHAR,WM_DEADCHARWM_SYSCHAR,WM_SYSDEADCHAR在Windows 中一些键是只产生按键消息而不产生系统按键消息只能产生非系统的字符消息。 Shift 键、键、功能键、光标移动键、特殊字符键。 Ctrl 25.焦点。 WM_SETFOCUSWM_KILLFOCUS个窗口进行操作。 26.WNDCLASSEX 在结构类型中,各个成员所代表的含义是什么?--------第10 页--------WNDCLASSEX 结构类型定义如下: typedefstruct_WNDCLASSEX {UINTcbSize;UINTstyle;WNDPROClpfnWndProc;intcbClsExtra;cbWndExtra;intHINSTANCEhInstance;HICONhIcon;HCURSOR hCursor;HBRUShbrBackgrouHnd;LPCTSTlpszMenuNaRme;LPCTSTlpszClassNamRe;HICONhIconSm; }WNDCLASSEX27. 在CreateWindowEx() 函数中,各成员所代表的含义是什么? CreateWindowEx() 函数定义如下:HWNDCreateWindowEx(DWORDdwExStyle,LPCTSTRlpClassName,LPCTSTRlpWindowName, DWORDdwStyle,intx, y,intnWidth,int nHeight,intHWNDhWndParent, HMENUhMenu,HINSTANCEhInstance, LPVOIDlpParam);28.UpdateWindow() 函数的功能什么?UpdateWindow()函数定义如下: BOOLUpdateWindow(HWNDhWnd);答:更新窗口客户区 29. 在MSG 结构类型中,各个成员所代表的含义是什么? MSG 结构类型定义如下:typedefstructtagMSG--------{HWNDhwnd;UINTmessage;WPARAMwParam;LPARAMlParam; DWORDtime; POINTpt; }MSG,*PMSG;30.DefWindowProc()

函数的功能什么?

函数定义如下:DefWindowProc()

11

第--------LRESULTDefWindowProc(HWNDhWnd,UINTMsg,WPARAMwParam, LPARAMlParam);答:函数功能:该函数调用缺省的窗口过程来为应用程序没有处理的任何窗口消息提供缺省的处理。该函数确保每一个消息得到处理。 31. 讲匈牙利命名惯例的约定,还要记住那些习惯用法? 匈牙利命名惯例的约定有两条: 1.标识符以一个或者几个小写字母开始,这些小写字母表示标识符的数据型; 2.大小写混杂写,使得标识符具有一定的含义,便于理解,增强可读性。 习惯用法: 在命名结构变量时, 可以用结构名的小写字符序列作为变量名的字首, 或者用整 个结构名用作结构变量名。消息循环从应用程序消息队列取得窗口消息是怎样送給窗口消息处理程序?答:通过 Dispatch(&msg) 将消息发给指定的窗口;主程序 WinMain 和WndProc 是如何联系的

?

33.答:WinProc窗口处理函数是一个回调函数,它是用来处理消息的,是由Wi调用的。在注册窗口类的时候指定了窗口处理函数的入口地址,应用程序 ndows获得的消息都交给此入口地址对应的窗口处理函数来处理。34.解释下面函数申明中的每一个单词WinMain (HINSTANCEhInstance

intWINAPI,HINSTANCELPSTR

hPrevInstance

;intnShowCmd)lpCmdLine hInstance 称为执行实例代号。hPrevInstance 是一个识别字,答: HINSTANCE 是数据类型,通过检查 hPrevInstance 就能够确定此应用程序是否已有过其他实例。 lpCmdLine 是指向命令 指出应用程序的窗口的最初显示方式。 nShowCmd 序列的指针。口类结构中常用的有那几个载入函数?它们的用法如 35.窗何?答: LoadIcon 函数 NULLLoadIcon(//HICONWINAPI 返回的指向图标的指针,如果失败,返回 ,用户定义图标在哪个实例中HINSTANCEhInstance,//为系统图标 NULL // 图标名,也称图标上的标签LPCSTRlpIconName);函数LoadCursor() 返回新载入的光标的句柄HCURSORWINAPILoadCursor(//载入的光标HINSTANCEhInstance,LPCTSTRlpCursorName)//预定义的光标资源名 --------GetStockObject(WHITE_BRUSH);// 窗口背景色 第页--------36、有哪两种方法获得屏幕的 hDC? 答:利用GetDC() 取得窗口 hDC;在处理 WM_PAINT 消息期间使用 BeginPaint() 获得hDC;37、BeginPaint 和EndPaint 在什么情况下使用,为什么要成对出现? 答:在处理 WM_PAINT 消息期间使用。38、InvalidateRect 所决定的重绘区和BeginPaint所决定的重绘 ?么 区别 区有 什InvalidateRect 最后一个参数的作用是什么?答:程序调用 BeginPaint 时,在大多数情况下, fErase 被标志为 FALSE(0),这意味着Windows 已经擦除了无效矩形的背景。 在调用BeginPaint 后PAINTSTRUCT结构的fErase条款将成为TRUE(非零)。而程序通过调用InvalidateRect函数使客户区中的矩形失效,则该函数的最后一个参数会指示是否擦除背景。 如果这个参数为FALSE,则执行 InvalidateRect 时Windows 将不擦除背景,反之,则会擦除背景。39、GetSystemMetrics 函数的用处是什么?GetTextMetrics 函数的用处是什么?为了存储它们所获得的信息,预先定义一个结构是什么?40、什么情况下产生

WM_CREATE

窗口消息?什么情况下产生

WM_PAINT

窗口消息?答:产生

WM_CREATE窗口消息:执行 CreateWindow 函数时产生 WM_PAINT窗口消息:执行 UpdateWindow 函数时 在使用者移动窗口或显示窗口时,窗口中先前被隐藏的区域重 新可见。使用者改变窗口的大小(如果窗口类别样式有着CS_VREDRAW 位旗标的设定)。CS_HREDRAW 和 函数滚动显示区域程序使用 ScrollDCScrollWindow 或的一部 分。 程序使用InvalidateRect 或InvalidateRgn 函数刻意产生WM_PAINT 消息。 Windows 擦除覆盖了部分窗口的对话框或消息框。 (可能 )菜单下拉出来,然后被释放。(可能 )显示工具提示消息。 41、为什么 WM_SIZE窗口消息后必然跟着一个 WM_PAINT 窗口消息?答:为我们定义窗口类的时候制定了类风格CS_HREDRAW|CS_VREDRAW、如果用户希望立即更新无效区域,可以在调用InvalidateRect 之后调用什么函数? 第13 页--------答: UpdateWindow43.按照产生的按键消息分,按键分成那两类? 答:系统按键和非系统按键44.按键消息有哪四种形式 ?系统按键消息有什么特点 ?它在哪里处理?那些不是系统按键消息 ?答:四种形式: WM_KEYDOWNWM_SYSKEYDOWNWM_KEYUPWM_SYSKEYUP特点:系统按键可能是一个按键也可能是几个按键的组合键,系统按键对 Windows 系统起作用。 由默认分支DefWindowProc 处理系统键盘消息。WM_KEYDOWNWM_KEYUP45. 数字和字母的虚拟键码是怎样定义的 ?答:数字、字母的虚拟键码是用 ASCII 码定义的。 46.窗口函数中 WM_KEYDOWN 消息处理分支中的wParam和SendMessage函数第三个参数wParam有什么不同?答:消息处理分支中的wParam它是判断虚拟键盘的。而SendMessage中的wParam它是存放鼠标通知码。47、窗口函数中WM_KEYDOWN消息处理分支中的wParam和SendMessage函数第三个参数wParam有什么不同?48、鼠标是一种“必须要的选择设备”,如何应用GetSystemMetrics函数确认鼠标是否存在?写出程序代码。fMouse=GetSystemMetrics(SM_MOUSEPRESENT);答:

八、程序设计题1、已经在视图类中映射了单击鼠标右键的消息,

在该函数中完成绘图,

要求以鼠标点击位置为圆心、半径为

100的绿色蓝边的圆。--------第14页--------CEx4_2View::OnRButtonDown(UINTnFlags,CPointpoint){TODO:Addyourmessagehandlercodehereand/orcalldefaultCView::OnRButtonDown(nFlags,point);}参考答案CEx4_2View::OnRButtonDown(UINTnFlags,CPointpoint){TODO:Addyourmessagehandlercodehereand/orcalldefaultCClientDCdc(this);CRectr(p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论