Windows程序设计复习资料(完整答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、单项选择题:

1.WinMain()函数的工作。

WinMain()函数是Windows程序的入口点

在WinMain中进行:注册窗体类、建立窗体、显示窗体、更新窗体、建立消息循环2.非MFC的Windows程序中,不是处理WM_PAINT消息的时候怎样获得客户区的设备环境句柄。

BeginPaint ----------EndPaint

GetDC---------------ReleaseDC(成对出现)

利用GetDC()函数获取设备环境句柄

3.句柄的含义。

句柄是一个(通常为32位的)无符号整数(unsigned int),它代表一个内核对象内核对象在应用层的表示

4.在MM_TEXT映射模式下,什么情况下客户坐标和逻辑坐标可能不同。

当窗口客户区有滚动条时客户坐标和逻辑坐标可能不同

5.Windows程序的控制流程。

Windows程序没有固定的控制流程,事件驱动程序控制流程

6.事件驱动、消息驱动的概念。

事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。

消息是事件到达Windows内部后的称呼

7.对话框、控件的作用。

对话框是程序与用户之间进行交互,接收用户输入、并把数据显示出来的一个窗口;

控件是用户可与之交互以输入或操作数据的对象。控件通常出现在对话框中或工具栏上。

8.MFC中怎样处理WM_PAINT消息。

在OnDraw()函数中处理该消息

9.GetMessage()函数在什么情况下返回0,从而导致消息循环终止,程序结束。

在接收到WM_QUIT消息时返回0

10.Windows中,应用程序的输出是怎样进行的。

通过设备描述表DC(Device Context)来进行应用程序与物理设备之间的交互11.MFC中,大多数类的基类都是什么。

CObject类

12.一个MFC应用程序必须有且只能有一个从哪个类派生的全局应用程序对象,此对象在运行时刻控制应用程序中所有其他对象的活动。

CWinApp类

13.每次当窗口客户区需要重新绘制时,应用程序框架怎么处理。

发送WM_PAINT消息,调用OnDraw()函数进行重绘

14.CDC类的作用。

CDC是设备描述表类的基类,除了一般的窗口显示外,还用于基于桌面的全屏幕绘制和非屏幕显示的打印机输出。

15.当程序中某个函数改变了数据而需要重新绘制客户区时,OnDraw()函数不会被自动调

用,这时需要怎样间接调用它。

使用Invalidate()调用

16.Invalidate()要重绘整个窗口客户区,当数据更新很快时,这样会引起屏幕闪烁。为了避免闪烁,可以怎样处理。

选择一个外包矩形,更新外包矩形,减少闪烁,使用InvalidateRect()重绘客户区中的指定区域

17.关于颜色。

COLORREF 是一个32-bit 整型数值,它代表了一种颜色。你可以使用RGB 函数来初始化COLORREF。如:COLORREF color=RGB(0,255,0);

18.匈牙利命名法的常用规则。

匈牙利命名法常用前缀:

指针:p

句柄:h

长整型:l

布尔:b

浮点型(有时也指文件):f

双字:dw

字符串:sz

短整型:n

双精度浮点:d

字符:ch(通常用c)

整型:i(通常用n)

字节:by

字:w

无符号:u

19.键盘消息处理函数OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags)中的主要参数。

参数UINT nChar指按下按键的虚拟键码

nRepCnt 按键按下的次数

nFlags 有没有其他键同时被按下(shift、ctrl、Alt、、、、、、)

20.设置定时器函数SetTimer(UINT nIDEvent,UINT nElapse,void *lpfnTimer)中的主要参数。

参数UINT nElapse指发送WM_TIME消息的时间间隔,单位为毫秒

设置定时器的步骤:在需要使用的地方SetTimer,对OnTimer自定义函数进行消息编写,适当地方KillTimer

21.CDC类中怎样选用库存GDI对象。

GetStockObject()(P188)

22.当创建了自己定义的画笔、画刷等GDI对象后,怎样将其选进设备环境。

CDC::SelectObject()

23.CDC类的成员函数SetROP2()的作用。

设定绘图模式

24.扩展名为.rc的文件是什么。

资源文件

25.文档/视图结构的分工。

文档相当于数据容器,视图相当于查看数据的窗口或是和数据发生交互的窗口。(一个完整的应用一般由四个类组成:CWinApp应用类,CFrameWnd窗口框架类,

CDocument文档类,CView视类。)

27.视图类怎样获得文档类的指针。

CView::GetDocument()

28.以模态方式显示对话框的方法。

CDialog::DoModal()

29.MFC中怎样获得应用程序类对象的指针。

AfxGetApp( )

30.在OnDraw()函数以外的函数中,怎样在客户区中显示数据。

使用CClientDC类创建客户区的设备环境句柄,如:CClientDC dc(this)

29.GDI绘图函数所使用的参数。

GDI绘图函数使用的逻辑坐标

30.GetClientRect()函数所获得的矩形是用什么坐标来表示的。

客户坐标

31.如果要创建宽度大于1的虚线画笔,则在创建画笔时一定要使用什么画笔类型。

PS_GEOMETRIC

32.关于串行化的问题。

需使用一个类型为CArchive的归档对象充当磁盘文件与程序中的对象的中介33.当用户按下某个字母键时,消息发生的顺序。

WM_KEYDOWN->TranslateMessage()->WM_CHAR

34.关于窗口客户区变为无效的问题。

窗口客户区变为无效时会发送WM_PAINT消息调用OnDraw()进行重绘

35.当一个类中要使用另外一个类时,一定要先使用#include将什么包含进来。

需要将要使用的类的头文件包含进来

36.MFC程序中,怎样从视图类中获得主框架类对象的指针。

操作状态栏调用CVIEW::GetParentFrame()

二、多项选择题:

1.一个窗口由哪些部分组成。

标题栏,菜单zz栏,工具栏,客户区,状态栏

2.窗口的框架包括哪些部分。

标题栏、菜单栏、最大化按钮、最小化按钮、关闭按钮、滚动条“客户区边框”3.Windows程序的资源包括哪些。

Windows资源包括图表、菜单、热键、对话框、光标、字符串、位图

4.坐标的分类问题。

设备坐标(DP)、客户坐标(Client)、逻辑坐标(LP)

8.根据消息来源的不同,Windows消息分为哪些种类。

系统消息、用户消息

相关文档
最新文档