Windows程序设计复习资料(完整答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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消息分为哪些种类。
系统消息、用户消息