Windows程序设计题

上传人:痛*** 文档编号:76552051 上传时间:2022-04-18 格式:DOC 页数:16 大小:217KB
收藏 版权申诉 举报 下载
Windows程序设计题_第1页
第1页 / 共16页
Windows程序设计题_第2页
第2页 / 共16页
Windows程序设计题_第3页
第3页 / 共16页
资源描述:

《Windows程序设计题》由会员分享,可在线阅读,更多相关《Windows程序设计题(16页珍藏版)》请在装配图网上搜索。

1、Windows 程序设计模拟题单项选择题在 VC+冲,项目文件的扩展名是(B)。A)exeB) dspC) dswD) cpp在 MFC 中,利用 ClassWizard 不能(D )。A)建立新类B)进行消息映射C)增加类的成员变量D)插入资源当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。A) WM_CHARB)WM_HSCROLLC) WM_VSCROLLD)WM_CHANGE更新菜单状态的消息是( C)。A) WM_COMMANDB) UPDATEC) UPDATE_COMMAND_UI)DINVALIDATE对于消息队列描述正确的是(D)A) 在Wind

2、ows 中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数 据结构,用于临时存储消息。B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows 下运行的应用程 序都有自己的消息队列。C)系统消息队列中的每个消息最终都要被USER 模块传送到应用程序的消息队列中去。应用程序的消息对列中存储了程序的所有窗口的全部消息。D) 以上都正确在 MFC 中,所有的控件都是(B )类的派生类,都可以作为一个特殊的窗口来处理。A)CViewB) CWndC) CWindowD) CDialog使用 GetDC() 获取的设备上下文在退出时,必须调用(A )释放设备上下文。A)Relea

3、seDC()B) delete()C) DeleteDC()D) Detach()希望菜单无效,应该用CCmdU 类的(A )成员函数。A)EnableB) SetRadioC) SetCheckD) SetText希望菜单前出现一个“V”,应该用CCmdU 类的(C)成员函数。A)EnableB) SetRadioC) SetCheckD) SetText下面(A)不是 MFC 设备环境类 CDC 类的派生类。A)GDIB) CPaintDCC) CClientDCD) CWindowDC在 MFC 中,所有的文档类都派生于( C ),所有的视图类都派生于( A )。A)CView B )

4、CWindow C ) CDocument D ) CFormView采用 C+进行绘图时,(B )用于指定图形的填充样式,(A )用于指定图形的边框样1.2.3.4.5.6.7.8.9.10.11.12.式。A)画笔B )画刷 C )区域 D )位图13. ( C )包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息。A)系统消息C) 输入消息14项目文件的扩展名是( B)。A) exe B ) dsp C ) dsw D ) cpp15.在 MFC 中,文档负责将数据存储到永久存储介质中,通常是磁盘文件或数据库,存取过

5、程称为( B)。A)文件访问B )串行化 C )文件读写D )格式化16.在 VC+ 在编程环境中,运行程序的快捷键是(A)。A) Ctrl+F5B) F7 C ) Ctrl+F7D) F517.在 VC+ 在编程环境中,设置和取消断点的快捷键都是(A)。A) F9B) F5 C ) F11D) F1018.在 MFC 中,在编辑某菜单项时,若要指明该菜单项是一个弹出式子菜单,必须选择属性对话框中的( B)。A) SeparatorB) Pop-up C ) InactiveD) Grayed19.使用 GetWindowDC()和 GetDC()获取的设备上下文在退出时,必须调用( C)释放

6、设备上下文。A) DeleteDC( ) B ) delete( ) C ) ReleaseDC( ) D ) Detach( )20.在 MFC 中,(B)代表窗口客户区的显示设备上下文,(C)代表整个窗口的显示设备上下文。A) CPaintDC B ) CClientDC C ) CWindowDC D ) CMetaFileDC21.对话框的功能被封装在(B)类中。A) CWndB) CDialogC) CObjectD) CCmdTarget22.( C)包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Win dows将它们送入应用程序消息队列中,由程序来处理消息;(D)

7、用来与 Windows 的控制对象,如列表框、 按钮、复选框等进行双向通信。 当用户在列表框中改动当前选择或改变了复选框 的状态时发出此类消息。A)系统消息B)用户消息C )输入消息D )控制消息23.生成 1 个只具有确定和取消按钮的消息框,其参数为( C )。A) MB_OK B ) MB_YESNOC) MB_OKCANCEL D) MB_RETRYCANCEL24.在 Windows 程序设计中如果加入了滚动条。设置滚动条的范围使用(C)函数,设置滚动条的位置使用(巳函数,获得滚动块的当前位置使用(F )函数。A) SetPos ()B) SetRange ()C) SetScroll

8、Range ()D) GetPos()E)SetScrollPos()F) GetScrollPos ()G) GetScrollRange ()25.消息循环的处理过程如下 :(A)函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦 发现队列不为空,便取出一条消息,把它拷贝到msg 结构变量中,同时该函数返回TRUE;B)用户消息D)控制消息得到消息 msg 后,(B)把来自键盘的命令翻译成 WM_XX 消息命令形式。(E)函数通知 Windows 把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由 Windows 根据消息去调用窗口函数,因此,窗口函数

9、经常被称为回调函数。A) GetMessage( ) B ) translateMessage( ) C ) PostMessage( )D) SendMessage( ) E ) DispatchMessage( )26.如果要严格按照匈牙利命名法命名 1 个局部窗口句柄, 以下变量命名正确的是 ( B )。A) g_hWnd B ) m_hWnd C ) g_pWnd D ) m_pWnd27.在 Windows 编程约定中,应用程序接口的英文缩写是(A )。A) API B ) SDI C ) GDI D ) MDI28.在 Windows 编程约定中,软件开发包的英文缩写是(C )。A

10、)API B)SDI C )SDK D )MDI29.在 Windows 编程约定中,图像设备接口的英文缩写是(C )。A)API B)SDI C )GDI D )MDI30.以下对应于 unsigned long 的数据类型为:( B )A) WORD B) DWORD C) INT D ) BYTE31.下列选项中,不属于匈牙利命名法属性部分的是( D )。A) g_ B ) m_ C ) c_ D ) d_32.如果要严格按照匈牙利命名法命名 1 个全局窗口句柄, 以下变量命名正确的是 ( A )。A) g_hWnd B ) m_hWnd C ) g_pWnd D ) m_pWnd33.

11、下列 Windows 数据格式中,代表设备句柄的是( B )。A) HWND B ) HDC C ) HINSTANCE D) HFONT34.在一个窗口的正常运行的 Windows 程序中,把主窗口创建语句做如下改动:hWnd = CreateWindow(NULL, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0,CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); 则下列说法正确的是( C )。 A)程序仍然正常运行,与改动前相比没有变化B)程序出现编译错误C)程序编译通过,但没有窗口显示D)程序正常

12、运行,窗口标题变为 NULL35.典型的 Windows 窗口程序的流程为:( A )A)注册窗口类 - 创建窗口 - 显示窗口 -更新窗口 - 消息循环B)创建窗口 -注册窗口类 -显示窗口 -更新窗口 -消息循环C)创建窗口 -注册窗口类 -显示窗口 -更新窗口 -消息循环D)注册窗口类 - 创建窗口 - 更新窗口 -显示窗口 - 消息循环36.菜单编辑器中,如果要设置某个项为分隔线,那么这个项的哪个属性为true 。 ( D )A) Visible B ) Grayed C ) Enable D ) Separator37.在 Windows 消息机制中,菜单消息类型是:(B )A) W

13、M_PAINT B ) WM_COMMANDC) WM_CREATE D) WM_CLOSE38.在 Windows 编程中,代表键盘的”f键的虚拟键值是(A )。A) VK_UP B ) WM_KEYDOWNC) WM_KEYUP D ) VK_DOWN39.在 Windows 编程中,响应键盘按键按下消息的Windows 消息是(B )。A) VK_UP B ) WM_KEYDOWNWM_KEYUP D ) VK_DOWN在 Windows 编程中,按下键盘的A键后,返回的 Windows 消息是(B )。VK_A B ) WM_KEYDOWN AD) DIK_A在Windows 编程中,

14、按下鼠标左键产生的Windows 消息是(B )。WM_KEYDOWN B) WM_LBUTTONDOWN WM_LEFT D ) WM_RBUTTONDOWN下列哪个缩写是微软提供的C+语言的帮助库? ( B)MFC B ) MSDN C ) API D ) SDK43. Windows 编程中,定时器消息是( B )A) WM_TIME B ) WM_TIMERC) WM_ON_TIME D ) WM_COMMAND44. GDI 环境中,窗口的坐标系是如何构成的?( D )A) 左上角为原点,x 轴正方向为水平向右,y 轴正方向为竖直朝上B)中间为原点,x 轴正方向为水平向右,y 轴正方

15、向为竖直朝上C)左下角为原点,x 轴正方向为水平向右,y 轴正方向为竖直朝下D)左上角为原点,x 轴正方向为水平向右,y 轴正方向为竖直向下45.以下选项中,GDI 不能支持的是:( B)A) 位图B) Flash 动画C)直线和曲线D )文字46.设备环境 DC 的全称为:( B )A)Device ContentB)Device ContextsC)Device ConfigD)Device Conter47.InvalidateRect的作用是B )A) 删除一个矩形B )使一个矩行区域变为无效,从而可以重绘C)使一个矩形区域变为无效,从而释放部分GDI 资源D)擦除一个矩形区域48.

16、已知窗口为缺省状态,有如下代码:HDC hdc = GetDC( hWnd );HPEN hpen = CreatePen( 1, 1, RGB(255,0,0) ); SelectObject( hdc, hpen );Ellipse( hdc, 050, 50, 200, 200 ); 则这段代码的执行效果是( B )。 A)绘制 1 个黑色的椭圆形边框,无填充颜色B)绘制 1 个红色的椭圆形边框,无填充颜色C)绘制 1 个黑色的椭圆形,填充为黑色,无边框D)绘制 1 个红色的椭圆形,填充为红色,无边框49. 已知有如下代码: HDC hDC = GetDC(hWnd);LineTo(hD

17、C,100,100); 则这段代码的执行效果是( A )。 A)从窗口的左上角至坐标 (100, 100)绘制 1 条直线B)没有绘制任何图形C)从窗口的任意一点开始至坐标 (100, 100)绘制 1 条直线D)从鼠标在窗口的位置至坐标 (100 , 100)绘制一条直线50.以下函数中不受画刷影响的函数是:( C )A) Rectangle B) EllipseC) LineTo D) Polygon51.如果要创建一个宋体字体,那么字体描述中哪个属性为“宋体”? (C )A) IfCharSet B) IfQualityC) IfFaceName D ) IfStrikeOutC)40.

18、A)C)41.A)C)42.A)52.在 Windows 编程约定中,位图句柄为( B )。A) HGDIB)HBITMAPC) HDCD) HPEN53.下面哪个步骤能实现透明贴图(模板位图为单色的1 位位图)?( A )A) 位图和背景像素作异或操作- 使用模板位图作与操作- 原位图与背景作异或操作B) 使用模板位图作与操作- 原位图与背景作异或操作- 位图和背景像素作异或操作C) 位图和背景像素作异或操作- 原位图与背景作异或操作- 使用模板位图作与操作D) 位图与背景作异或操作- 位图和背景像素作异或操作 - 使用模板位图作与操作54.在 BitBlt 函数中进行光栅化处理方式中,哪1

19、 个值说明是要进行或运算?( D )A) SRCAND B ) SRCCOPYC) SRCINVERT D ) SRCPAINT55.动态链接库文件的后缀名为( B )。A) lib B ) dll C ) exe D ) obj二.多选题1.已知严格按照匈牙利命名法命名的变量m_pTemp 则以下说法正确的是( BC )。A)该变量是 1 个全局变量B) 该变量是 1 个类成员变量C)该变量是 1 个指针变量D)该变量一定是 1 个私有变量2下列哪种情况下系统可能向窗口发送WM_PAIN 消息? ( ABCD )A) 窗口最初创建时B) 窗口移动后部分区域由不可见变为可见C) 窗口大小改变后

20、D) 滚动条滚动后3.在注册窗口类中,不需要进行的操作是(BC )。AI载入图标B)确定窗口大小,确定窗口标题D)确定窗口类名称4.关于 PeekMessage 和 GetMessage 的说法正确的是( AB )A) PeekMessage 立即返回B) GetMessage 将会等待消息到来C) PeekMessage 等待消息到来D) GetMessage 立即返回5.关于动态菜单,以下说法正确的是( BD )。A) 函数 LoadMenu 可以弹出菜单B) 函数 CreatMenu 用于建立空菜单C) 函数 DeleteMenu 用于删除整个菜单D) 函数 InsertMenu 用于在

21、菜单中插入 1 个菜单项6.以下关于 Windows 的鼠标消息,说法正确的是(BD )。A) 鼠标的按键消息种类可以从 wPara m 中得到B) 鼠标的按键消息种类可以从 message 中得到C) 鼠标的位置信息可以从 wPara m 中得到D) 鼠标的位置信息可以从 IParam 中得到7.已知语句 SetTimer(NULL,1,100,NULL),则以下说法正确的是(AD )。A) 设置了一个定时器,该定时器不能正常起作用B) 设置一个定时器,能够正常起作用C) 设置了一个定时器,时间间隔为 1 秒D) 设置了一个定时器,时间间隔为 100 毫秒8.下列选项中属于 Windows

22、GDI 资源的是(ABC )。A)位图 B)画笔 C)字体 D)窗口9.能用于绘制直线的函数为:(AB )A)Lin eTo B)Polyli ne C)Arc D)PolyBezier10.画笔的线型包括:(ABD )A)实线 B)点划线 C)波浪线D) 虚线11. 创建画刷的函数有:(ABC )A) CreateHatchBrush B)CreateSolidBrushC) CreatePatternBrush D)CreateLogicBrush12. 在 Windows 消息机制中,消息系统3 大关键要素是(ABC )。A)消息队列 B)消息循环C)消息处理函数 D)消息映射13.下列

23、哪种情况下系统可能向窗口发送WM_PAIN 消息? ( BCD )A) 窗口最初创建时B) 窗口移动后部分区域由不可见变为可见C) 窗口大小改变后D) 滚动条滚动后14匈牙利表示法的变量一般分为哪几个部分? ( ABCA)属性(例如 gB) 类型C)描述D)后缀15.下列选项中,可以用Win dows 句柄标识的有(ABD )。A)窗口 B)文件 C)消息 D)字体16 .关于 Windows 句柄,下列说法正确的是( AD )。A) 每个运行着的 Win dows 程序都有对应的 Win dows 实例句柄B) 同 1 个 Windows 程序打开多次时,对应同 1 个实例句柄C) 1 个

24、Windows 实例句柄只能对应 1 个窗口句柄D) 1 个 Windows 实例句柄可以对应多个窗口句柄三、名词解释1、事件:可能触发计算机程序做出相应反应的刺激2、 句柄:为了区别于普通变量的标识,Win dows 把这种复杂对象的标识叫做句柄3、 消息:为了描述事件的各种信息(例如,何时何地发生了何种事件等),Windows 定义 了一个结构,这个结构就叫做”消息”4、 Windows 的 API 函数:由操作系统提供的,用户可以使用的函数就叫做API5、 Windows SDK 程序:使用软件开发工具包开发出来的Windows 应用程序6、 资源:资源就是一种可供Win dows 应用

25、程序利用,可单独编辑,并可动态加载的数据7、 图象设备接口( GDI): Windows 把用于改变 DC 属性的操作,即与绘图相关的操作都制 作成函数,这些函数的集合就叫做图形设备接口& CDC 类:在面向对象程序设计思想中,把DC 和 GDI 函数封装到一起形成CDC 类9、回调函数:系统调用用户编写的函数过程叫做“回调”,所以这种被系统调用的函数也 叫做“回调函数”10、 无效显示区:在有效提高拆分窗口显示更新效率的方法中,程序只重绘必须重绘的区域11、控件:Win dows 设计了一些具有图形外观的程序实体,这些程序实体在鼠标或键盘的作 用下会使程序出现不同的响应,这些可以接收或者产生

26、事件的程序实体就叫做控件12、 类信息表:MFC 程序在不同的场合下还经常用到类的其他信息,于是MFC就把这些信息 统统都放在映射表项中,并把它叫做类消息表13、消息循环:while(GetMessage(&msg,NULL,NULL,NULL)Tran slateMessage(&msg); DispatchMessage(&msg);四填空题1、 在 MFC 中,用户可以通过项目工作区窗口的ResourceView 视图来查看资源。2、 一个单文档的 MFC 应用程序框架一般包括 5 个类:应用程序类、框架窗口类、视图类、文档类和文档模板类。3、 Win dows 是一个基于消息的消息驱动

27、系统。4、 项目工作区文件的扩展名是dsw。5、 MessageBox 函数弹出一个小的对话框向用户显示短信息,并将用户最终的选择返回给调用者。6、 在通常情况下,视图派生类的成员函数中通过调用GetDocume nt 函数得到当前文档对象的指针。7、 Win dows 程序中的消息有窗口消息、命令消息和控件通知消息三种类型。& MFC 中的集合类包括数组、列表(链表)、映射(顺序可变)。9、 在进行绘图时,画刷用于指定图形的填充样式,画笔用于指定图形的边框样式。10、 用户按下键盘按键并放开的过程中,将产生至少三条消息:WM_KEYDO,WNM_CHARWM_KEYUP11、 Windows

28、 API 中 API 的中文译文是应用程序接口 。12、 MFC 的中文译文是微软基础类库。13、 GDI 的中文译文是图形设备接口。14、 全局函数 AfxGetApp()可以得到 CWinApp 应用类指针。15、 MFC 中可自动重绘的绘图代码一般位于项目的视图类的OnDraw()函数中。16、 在视图中,GetDocument()函数可得到对应的文档对象指针。17、 在文档中,GetFirstviewPosition()和 GetNextview()配合可用来遍历所有和文档关联的视图。18、 在 MFC 中,用 CRect 类来描述一个矩形区域的大小。19、 在任何时刻设备环境中必须有

29、一支画笔,并且只能有一支。因此在使用自己定义的画笔时,要使用 CDC 的函数把默认画笔替换为自己定义的画笔,这个函数是SelectObject() 。20、 MFC 的缺省的映射模式是 MM_TEXT 对应的单位为像素。21、 在视图类中为了访问与视图关联的文档对象中数据,应该先调用GetDocument()函数得到相关联文档对象指针。22、 利用 MFC AppWizard 可以生成 SDI 界面、MD 界面和基于对话框界面的程序。23、 在框架窗口中,GetActiveDocument ()函数可得到当前活动文档指针, GetActiveView ()函数可得到当前活动视指针。24 MFC

30、 对话框类的基类是 CDialog ,用户自定义对话框类都是从它派生而来。25 Win dows 系统是一个消息响应事件驱动的操作系统,消息是应用程序与操作系统交互的 手段。()被用来从消息队列获取消息,27.函数 TranslateMessage() 用来把键盘消息转换为字符消息,函数DispatchMessage()用来向系统派送消息。五、选择填空题(每空1 分,共 15 分)1、 _B _代表窗口客户区的显示设备上下文,_C _代表整个窗口的显示设备上下文。A、CPaintDC B 、CClientDC C 、CWindowDC D、CMetaFileDC2、消息循环的处理过程如下:A

31、函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到 msg 结构变量中,同时该函数返回 TRUE 得到消息 msg 后,_B _把来自键盘的命令翻译成WM_XX 消息命令形式。_E _函数通知Windows 把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由 Windows(x )根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。A、GetMessage( ) B 、translateMessage( ) C 、PostMessage()D SendMessage( ) E 、DispatchMessage

32、()3、 滚动条类 CScrollBar 的成员函数规定了滚动条的操作。设置滚动条的范围使用_C函数,设置滚动块的位置使用_E _函数,获取滚动块的当前位置使用_F _函数。ASetPos B 、SetRange C 、SetScrolIRange D 、GetPosE、SetScrollPos F 、GetScrollPos G 、GetScrollRange4、 所有的文档类都派生于_C _,所有的视图类都派生于上_。A、CView B、CWindow C、CDocument D、CFormView5、_C_包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们

33、送入应用程序消息队列中,由程序来处理消息;_ _用来与 Windows 的控制对象,如列表框、按钮、复选框等进行双向通信。当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。A、系统消息B 、用户消息 C、输入消息D 、控制消息6、 使用_B _ 获取的设备上下文在退出时,必须调用ReleaseDC()释放设备上下文。A、GetWindowRect( ) B 、GetDC()C、BeginPaint () D 、GetClientRect()六判断题1.所谓的 Windows API 就是独立于 C 语言的一套全新的程序设计语言。(x)2.在 Windows 编程约定中,CHAR

34、数据类型和 TCHAR 数据类型是相同的。(x)3.匈牙利命名法是所有程序都必须遵循的一个规则,变量的命名必须按照规则进行。(x )4.在 Windows 编程约定中,代表窗口句柄的数据类型是HWND (V)5.在 Windows 编程中,使用窗口句柄来操作具体的窗口。(V)6.在 Windows 的消息结构中,键盘的按键字符信息被保存在lParam 中。(x)7.在 Windows 消息机制中, WM_TIME 消息表示创建了 1 个定时器。(x)8.所有的 Windows 程序,其入口函数必须名为WinMain。(x)9.PostMessage 和 SendMessage 的区别在于前者投

35、递消息到队列,而后者直接调用消息响应函数。(V)10.在 Windows 编程中,AppendMenu 可以在菜单的任意位置插入新的菜单项。(x)11.在 Windows 编程中,菜单可以在资源视图中设计,一旦载入程序,就不能再被更改。(x )12.在 Windows 编程中,键盘按键弹起时,会返回消息WM_KEYDOW(x)13.在 Windows 编程中,鼠标消息中不包含任何键盘信息。(x)14.在 Windows 编程中,1 个程序中只允许设置一个定时器。(x)15.画笔颜色构成是 OxOOBBGGRR 其中 B、G R 分别代表 1 位 16 进制数表示蓝、绿和红色 分量的大小。(V)

36、16.对于 GDI 点阵字体和 GDI 笔划字体,Windows 都可以合成粗体、斜体、加底线和加删除线,而不需要为每种属性另外储存字体。(V)17. FillRect中指定的画刷是用于画矩形本身和边框,FrameRect 中指定的画刷是用于画矩形的边框。(x)18. Win32 API 可以直接读取所有的图像格式。(x)19打开一个项目,只需打开对应的项目工作区文件。(V)20基于对话框的应用程序,也有文档类和视图类。(x)(x )21 .所有的 Windows 应用程序都是消息驱动的。(V )22.COMMAND 消息类型)是更新命令用户接口消息。23. 删除 CPen 对象可调用 CPe

37、n 对象的 DeleteObject 函数。(X )24. CBrush 是 GDI 对象。(V )25.Windows 应用程序的入口也是 main 函数。(X) 七.简答题1.Windows 应用程序的主函数有哪三个主要任务答 注册窗口类、创建应用程序的窗口和建立消息循环。2. 运行程序后单击鼠标右键弹出对话框提示“您按下了鼠标右键”对话框。简要说明设计步骤。参考答案:(1)新建基于单文档的应用程序;(2)用类向导映射鼠标右键消息;(3)在消息函数中添加代码: MessageBox( “您按下了鼠标右键”);3、 .利用 AppWizard 生成默认的 SDI 应用程序 My 时,向导自动

38、生成的哪四个类?及其相 应的功能。参考答案:CMainFrame (构建应用程序,显示窗架)CMyApp(整个应用程序)CMyDoc(管理数据) CMyView (显示数据)4. 创建窗口的五个步骤:参考答案:1 )定义窗口 2 )注册窗口 3 )创建窗口 4 )显示窗口 5 )消息循环5.如何显示和更新窗口?答:调用函数 ShowWindow 显示窗口,调用函数 UpdateWindows 更新窗口。6.什么是消息循环?答:在创建了窗口的应用程序中, 应用程序将不断地从消息队列中获取消息,并将消息指派给指定的窗口处理函数来处理, 然后再回来从消息队列获取消息, 这个不断重复的 工作过程叫做消

39、息循环。7.说明 Windows 应用程序的主函数、窗口函数与Windows 系统之间的关系。答:Windows 应用程序的主函数和窗口函数都是系统调用的函数,主函数是在应用程序 启动时由系统首先调用的函数,而窗口函数是主函数在消息循环中获得消息并把消息派送给系统之后,由系统调用的用来处理消息的函数。&文档类的成员函数 UpdateAllViews 的作用是什么?答:通知文档所对应的所有窗口同时进行重绘。9.MFC 应用程序的界面有哪三种方式?答:(1)单文档界面;(2)多文档界面;(3)基于对话框界面。10. WinMain()函数的工作。WinMain()函数是 Windows 程序的入口

40、点 在 WinMain 中进行注册窗体类、 建立窗体、显 示窗体、更新窗体、建立消息循环11.非 MFC 的 Windows 程序中,在 WM_PAIN 硝息中怎样获得客户区的设备环境句柄。和 不是 WM_PAIN 消息中怎样获得客户区的设备环境句柄。BeginPaint- EndPaint GetDC-ReleaseDC(成对出现)利用 GetDC 函数获取设备环境句柄12. 句柄的含义。句柄是一个通常为 32 位的无符号整数(unsigned int ),它代表一个内核对象,是内 核对象在应用层的表示。13. 在 MM_TEX 映射模式下,什么情况下客户坐标和逻辑坐标可能不同。 当窗口客户

41、区有滚动条时客户坐标和逻辑坐标可能不同14.GetMessage()函数在什么情况下返回0 从而导致消息循环终止程序结束。 在接收到 WM_QUIT 肖息时返回 015.Windows 中应用程序的输出是怎样进行的。通过设备描述表 DC( Device Con text )来进行应用程序与物理设备之间的交互16 当程序中某个函数改变了数据而需要重新绘制客户区时WM_PAINT 不会被自动调用这时需要怎样间接调用它。使用 InvalidateRect()调用17.键盘消息处理函数 On KeyDow n( UINT n Char,UINT n RepC nt,UINT nFlags) 中的主要参

42、数。参数 UINT nChar 指按下按键的虚拟键码;nRepCnt 按键按下的次数;nFlags 有没有其他键同时被按下;如 shift 、ctrl、Alt18.DC 中的 SetROP2()的作用。设定绘图模式19.扩展名为.re 的文件是什么。资源文件20.GDI 绘图函数所使用的参数。GDI 绘图函数使用的逻辑坐标21 .当用户按下某个字母键时消息发生的顺序。WM_KEYDOWN-Tra nslateMessage()-WM_CHAR22常用的客户区鼠标消息有哪些答WM_LBUTTONDBC 双击鼠标左键 WM_LBUTTONDOW 按下 鼠标左键 WM_LBUTTONUP释放鼠标左键

43、 WM_MOUSEMO 移动鼠标 WM_RBUTTONDBCLK 击鼠标右键 WM_RBUTTONDOWN 按下鼠标右键 WM_RBUTTONU 释放鼠标右键23.什么样的窗口才能接收键盘消息答 在 Windows 中 有时会同时打开多个窗口。 在这些窗口中只有一个是活动窗口这个窗口一般是屏幕上位置最靠前的窗口它的特征是其标题栏被点亮的而不是灰色的。只有活动窗口才具有输入焦点而 Windows 中规定只有具有输入焦点的窗口才能接收键盘消息 也就是说只有活动窗口才能接收键盘消息。24.键盘消息分为哪几类哪些键只产生按键消息不产生字符消息答键盘消息可以分成按键消息和字符消息两类。按键消息分为系统按

44、键消息(WM_KEYDOWN,WM_KEYU 非系 统按键消息WM_SYSKEYDOWN,WM_SYSKEYU 字 符消息也同样分为系统字符消息WM_CHAR,WM_DEADCHAR 和非系统字符消息WM_SYSCHAR,WM_SYSDEADCHA 值得注意的是系统按键消息只能产生系统字符消息非字符消息的这些键包括 Shift 键、Ctrl 键、功能键、光标移动键、特殊字符键。25.在程序中如何确定窗口何时具有输入焦点何时失去输入焦点。答 当应用程序的窗口获得输入焦点时会发出 WM_SETFOCUS 息 而当窗口失去输入焦点时 会发出 WM_KILLFOCU 消息。如果一个窗口获得了输入焦点便

45、可以用键盘对这个窗口进行操作。26.在 WNDCLASSE 结构类型中,各个成员所代表的含义是什么?WNDCLASSEX 结构类型定义如下:typedef struct _WNDCLASSEX UINT cbSize;UINT style;WNDPROC lpfnWndProc;int cbClsExtra;int cbWndExtra;HINSTANCE hln sta nee; HICON hIco n;系统按键消息只能产生非系统的字符消息。在 Windows 中一些键是只产生按键消息而不产生HCURSOR hCursor;HBRUSH hbrBackgrou nd; LPCTSTR Ip

46、szMe nuName; LPCTSTR lpszClassName; HICON hIco nSm; WNDCLASSEX27.在 CreateWindowEx()函数中,各成员所代表的含义是什么? CreateWi ndowEx() 函数定义如下:HWND CreateWi ndowEx(DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWi ndowName,DWORD dwStyle, int x, int y, intn Width,intnH eight,HWNDhWndPare nt,HMENU hMe nu, HINSTANCE h

47、ln sta nee, LPVOID lpParam);()函数的功能什么?UpdateWi ndow()函数定义如下: BOOL UpdateWi ndow(HWND hWnd);答:更新窗口客户区29.在 MSG 结构类型中,各个成员所代表的含义是什么? MSG 结构类型定义如下:typedef struct tagMSG HWND hwnd;UINT message; WPARAM wParam; LPARAM lParam; DWORD time;POINT pt; MSG, *PMSG;()函数的功能什么?DefWi ndowProc() 函数定义如下: LRESULT DefWi

48、ndowProc(HWND hWnd, UINT Msg,WPARAM wParam, LPARAM lParam);答:函数功能:该函数调用缺省的窗口过程来为应用程序没有处理的任何窗口消息提供缺省的处理。该函数确保每一个消息得到处理。31.讲匈牙利命名惯例的约定,还要记住那些习惯用法?匈 牙 利 命 名 惯 例 的 约 定 有 两 条 :1.标识符以一个或者几个小写字母开始,这些小写字母表示标识符的数据型;2.大小写混杂写,使得标识符具有一定的含义,便于理解,增强可读性。习惯用法:在命名结构变量时, 可以用结构名的小写字符序列作为变量名的字首,或者用整个结构名用作结构变量名。32消息循环从应

49、用程序消息队列取得窗口消息是怎样送給窗口消息处理程序?答:通过 Dispatch(&msg)将消息发给指定的窗口;33.主程序 WinMain 和 WndProc 是如何联系的?答:WinProc 窗口处理函数是一个回调函数,它是用来处理消息的,是由Windows 调用的。在注册窗口类的时候指定了窗口处理函数的入口地址,应用程序获得的消息都交给此入口地址对应的窗口处理函数来处理。34. 解释下面函数申明中的每一个单词int WINAPI WinMain( HINSTANCEhlnstanee ,HINSTANCBhPrevInstanee ,LPSTRpCmdLine, intnShowCmd

50、 );答:HINSTANC 是数据类型,hlnstanee 称为执行实例代号。hPrevInstanee 是一个识别字, 通过检查hPrevInstanee 就能够确定此应用程序是否已有过其他实例。IpCmdLine 是指向命令序列的指针。n ShowCm(指出应用程序的窗口的最初显示方式。35. 窗口类结构中常用的有那几个载入函数?它们的用法如何?答:LoadIeon 函数HICON WINAPI LoadIe on( /返回的指向图标的指针,如果失败,返回NULLHINSTANCE hInstanee, /用户定义图标在哪个实例中,NULL 为系统图标LPCSTR IpIe onN ame

51、 /图标名,也称图标上的标签);LoadCursor()函数HCURSOR WINAPI LoadCursor (/ 返回新载入的光标的句柄HINSTANCE hln sta nee,/载入的光标LPCTSTR IpCursorName) /预定义的光标资源名GetStockObject(WHITE BRUSH);/ 窗口背景色36、有哪两种方法获得屏幕的hDC?答:利用 GetDC()取得窗口 hDC在处理 WM_PAIN 消息期间使用Begin Pai nt()获得 hDC37、 BeginPaint 和 EndPaint 在什么情况下使用,为什么要成对出现?答:在处理 WM_PAINT

52、肖息期间使用。38、 In validateReet 所决定的重 绘区和 Beg in Pai nt 所决定 的重绘 区有什 么区别?In validateReet最后一个参数的作用是什么?答:程序调用 Beg in Pai nt 时,在大多数情况下,fErase 被标志为 FALSE(O),这意味着 Win dows 已经擦除了无效矩形的背景。在调用 Beg in Pai nt 后 PAINTSTRqCT 结构的 fErase 条款将成为 TRUE 非零)。而程序通过调用 InvalidateRect函数使客户区中的矩形失效,则该函数的最后一个参数会指示是否擦除背景。如果这个参数为 FALS

53、E 则执行 InvalidateRect 时 Windows 将不擦除背景, 反之, 贝 U 会擦除背景。39、 GetSystemMetrics 函数的用处是什么?GetTextMetrics 函数的用处是什么?为了存储 它们所获得的信息,预先定义一个结构是什么?40、 什么情况下产生 WM_CREAT 窗口消息?什么情况下产生WM_PAIN 窗口消息?答:产生 WM_CREAT 窗口消息:执行 CreateWindow 函数时 产生 WM_PAIN 窗口消息:执行 UpdateWindow函数时在使用者移动窗口或显示窗口时,窗口中先前被隐藏的区域重新可见。使用者改变窗口的大小(如果窗口类别

54、样式有着CS_HREDRAW和 CS VREDRAW 旗标的设定)。程序使用 ScrollWindow 或 ScrollDC 函数滚动显示区域的一部 分。程序使用 InvalidateRect 或 InvalidateRgn函数刻 意产生WM PAIN消 息。Win dows 擦除覆盖了部分窗口的对话框或消息框。(可能)菜单下拉出来,然后被释放。(可能)显示工具提示消息。41、为什么 WM_SIZE 窗口消息后必然跟着一个WM_PAIN 窗口消息?答:为我们定义窗口类的时候制定了类风格CS_HREDRAW|CS_VRERAW42、如果用户希望立即更新无效区域,可以在调用In validateR

55、ect之后调用什么函数?答:UpdateWi ndow43. 按照产生的按键消息分,按键分成那两类?答:系统按键和非系统按键44. 按键消息有哪四种形式?系统按键消息有什么特点?它在哪里处理?那些不是系统按键 消息?答:四种形式:WM KEYDOWIWM SYSKEYDOWNWM KEYUPWM SYSKEYUP特点:系统按键可能是一个按键也可能是几个按键的组合键,系统按键对 Win dows 系统起作用。由默认分支 DefWindowProc 处理系统键盘消息。WM_KEYDOWNM_KEYUP45.数字和字母的虚拟键码是怎样定义的答:数字、字母的虚拟键码是用ASCII 码定义的。46.窗口

56、函数中 WM_KEYDOWN 息处理分支中的 wParam 和 SendMessage 函数第三个参数 wParam 有什么不同?答:消息处理分支中的 wPara m 它是判断虚拟键盘的。而 SendMessage 中的 wParam 它是存放鼠标通知码。47、 窗口函数中 WM_KEYDOWN 息处理分支中的 wParam 和 SendMessage 函数第三个参数 wParam 有什么不同?48、 鼠标是一种必须要的选择设备,如何应用GetSystemMetrics 函数确认鼠标是否存 在?写出程序代码。答:fMouse = GetSystemMetrics (SM MOUSEPRESEN

57、T);八、程序设计题1、已经在视图类中映射了单击鼠标右键的消息,在该函数中完成绘图, 要求以鼠标点击位置为圆心、半径为 100 的绿色蓝边的圆。CEx4_2View:OnRButtonDown(UINT nFlags, CPoint point) / TODO: Add your message han dler code here an d/or call defaultCView:OnRButtonDown(nFlags, point);参考答案CEx4_2View:OnRButtonDown(UINT nFlags, CPoint point)/ TODO: Add your messa

58、ge handler code here and/or call default CClientDC dc(this);CRect r,+100,+100);CBrush brush(RGB(0,255,0) ;CBrush *pOldBrush; pOldBrush=dC ) SelectObject(&brush);CPen pen(PS_SOLID,1,RGB(0,0,255) ;CPen *pOldPen; pOldPen=dC) SelectObject(&pen);dC)Ellipse(r);dC) SelectObject(pOldBrush);dC) SelectObject(

59、pOldPen); CView:OnRButtonDown(nFlags, point);2、 为学员信息设计一个类 CStudent ,包含:学号、姓名、出生日期、家庭住址、班级,并 使该类可以实现串行化。请写出可以实现要求的和文件的内容/class CStudent : public CObject public:CString Num ;CString Name;CTime Birth;CString Address;CString Grade;DECLARE_SERIAL(CStudent)virtual void Serialize( CArchive & ar );IMPLEMEN

60、T_SERIAL(CStudent ,CObject, 0)void CStudent:Serialize(CArchive & ar) CObject:Serialize(ar);if ( () ) arNumName Birth AddressNumName Birth AddressGrade;3、 创建一个记录通讯录内容的新类 Caddrlist ,包含:姓名、住址、电话、出生日期,并 使该类可以实现串行化。请写出可以实现要求的和文件的内容/ 文件内容 :class CAddrlist : public CObject public:CString Name;CString Addre

61、ss;CString Tel;CTime Birth;CAddrlist();DECLARE_SERIAL(CAddrlist)virtual void Serialize( CArchive & ar );文件内容 :IMPLEMENT_SERIAL(CAddrlist,CObject, 0)void CAddrlist:Serialize(CArchive & ar) CObject:Serialize(ar);if ( () ) arNameTelAddressNameTelAddressBirth; 1 分 4、为学员信息设计一个类CWorker,包含:编号、姓名、出生日期、家庭住址、

62、手机号,并使该类可以实现串行化。请写出可以实现要求的和 文件的内容。/class CWorker : public CObject public:CString Num ; / char Num10;CString Name;CTime Birth;CString Address;CString Tel;DECLARE_SERIAL(CWorker) / 使对象可串行化virtual void Serialize( CArchive & ar ); /重载串行化函数CWorker () 。 ;/MPLEMENT_SERIAL(CWorker,CObject,0)void CWorker:Serialize(CArchive & ar) CObject:Serialize(ar);i f ( () ) arNumName Birth AddressNumName Birth AddressTel;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!