tceic.com
学霸学习网 这下你爽了
相关标签
当前位置:首页 >> IT/计算机 >>

《面向对象程序设计》Windows部分习题答案(学生)


1. Windows 应用程序中消息传递是如何进行的? 简答:由 Windows 以及由其他应用程序向用户的应用程序发送的全部消息都储存在消息队列中,等待 调用。SDK 程序以消息循环调用 Windows 消息,如下代码表示此循环一直运行到程序接受终止执行消 息才停止。 MSG Msg; ? while (GetMessage (&Msg,NULL,0,0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } 在 While 循环内部,由循环的每次迭代调用 Windows API 函数 GetMessage (&Msg,NULL,0,0)以得到消 息队列中的下一个消息,并把它存在特定的 MSG 结构体变量 Msg 中。TranslateMessage(&Msg)实现键 盘上某个键的翻译。DispatchMessage(&Msg)函数向窗口的消息处理函数发送消息,调用相应的消息处 理函数。完成后进入下一个循环 2. Windows 应用程序常用消息? 简答:窗口消息、命令消息和控件消息 3. Windows 应用程序的最基本构成? 简答: 1) Windows 应用程序由 WinMain 函数和 WndProc 窗口处理函数构成基本框架。 2) WinMain 函数是所有 Windows 程序的入口,其功能包含窗口类的定义和注册,窗口的创建和显示, 并产生消息循环。 WinMain(?)//程序的入口点 { WNDCLASS wndclass ; //定义窗口类 … RegisterClass ( &wndclass); //注册窗口类 CreateWindow (?); //创建窗口 ShowWindow (?) ; //显示窗口 UpdateWindow (?); //更新窗口 While (GetMessage (&msg,NULL,0,0)) //消息循环,将消息派送给窗口函数 WndProc { TranslateMessage (&msg); DispatchMessage (&msg); } } 3) WndProc 窗口处理函数定义了应用程序对收到的不同消息的响应, 其中包含了应用程序对各种可能 接收到的消息的处理过程,是消息处理分支控制语句的集合。 WndProc (hwnd, message, wParam, lParam) { switch (message) { case … case WM_DESTROY: //关闭窗口并退出程序

PostQuitMessage (0); default: return DefWindowProc (hwnd,message,wParam,lParam); } return (0); } 4. 什么是图形设备接口?如何支持与设备无关的图形? 简答: GDI:图形设备接口(Graphics Device Interface) GDI 是 Windows 系统的重要组成部分,负责系统与用户或绘图程序之间的信息交换,并控制在输出设 备上显示图形或文字。 Windows 应用程序使用 GDI 和 Windows 设备驱动程序来支持与设备无关的图 形。 5. 应用程序如何获取设备环境输出图形?比较两种方法的异同? 简答:常用的获取设备环境的方法是调用函数 BeginPaint 和 GetDC,采用的方法为响应 WM_PAINT 消 息: case WM_PAINT: HDC hdc; //定义一个 DC 句柄变量 PAINTSTRUCT ps; //定义无效区域 hdc = BeginPaint(hwnd, &ps); //使无效窗口变为有效,并获得一个 DC 句柄 ? //使用 GDI 函数 EndPaint(hwnd, &ps); //释放 DC 句柄 函数 项目 适用场合 操作区域 释放设备环境所用函数

BeginPaint 只适用于由 WM_PAINT 消 息驱动的图形刷新 无效区域 EndPaint

GetDC 非 WM_PAINT 消息驱动 也可以,使用范围更广 整个用户区 ReleaseDC

6.

VC6 建立的工程中后缀为.cpp,.h,.rc,.dsp,.dsw 的文件的作用是什么? 文 件 名 .cpp .h .rc .dsw .dsp .clw 说 明 源文件,源程序代码,常为类的实现文件 包含函数声明和变量定义的头文件头文件,常为类的声明文件 可编辑资源脚本文件 工作区文件, 它保存了当前工作区所包含的项目的信息,一个工作 区可能包含一个或多个工程 项目文件,它包含当前项目的设置、项目中包含的文件等信息 类信息文件,它含有能被 AppWizard 用来编辑现有类或增加新类 的信息。 AppWizard 还用这个文件来保存创建和编辑消息映射与对 话框数据所需的信息,以及创建虚拟成员函数所需的信息

7. MFC 支持的三种不同类型的应用程序?相互间的区别?其中哪些采用了文档/视图结构? 简答:MFC 应用程序向导能建立基于单文档(SDI),基于多文档(MDI)和基于对话框(Dialog Based)三种 应用程序的框架。其中前两种采用了文档/视图结构。 8. 简述链接器在控制台程序方式、API 程序方式和 MFC 程序方式在寻找入口函数上的不同。 简答: 控制台程序方式(Console Application) :链接器自动去寻找 main()函数作为入口 API 程序方式(Win32 Application) :链接器自动去寻找 Winmain()函数作为入口 MFC 程序方式(MFC Application(exe)) :使用系统的 AfxWinMain()函数作为入口 使用 MFC AppWizard 生成一个简单的单文档应用程序,分析创建了哪些主要类?各类的作用? 简答:应用程序框架类 CMainFrame、应用程序类、文档类、视图类和关于帮助类。这五个类之间 的通讯和数据交换是通过相互调用公开成员函数和发送消息来完成的。 应用程序类:负责程序的初始化、运行以及结束处理; 主窗口类:负责主窗口的创建、显示和搜索用户命令以及消息派发; 文档类:负责应用程序文档的装载和维护,文档是应用程序需要保存的任何内容; 视图类:负责为文档提供一个或几个视图,视图的作用是为显示和修改文档提供人机界面。 9.
类名称 CMymfcApp CMainFrame CMymfcDoc CMymfcView 基 类 CWinApp CFrameWnd CDocument CView 类声明文件 Mymfc.h MainFrm.h MymfcDoc.h MymfcView.h 类实现文件 Mymfc.cpp MainFrm.cpp MymfcDoc.cpp MymfcView.cpp

10. 使用 MFC AppWizard 生成应用程序时,在源程序中找不到 WinMain()函数,为什么? 简答:MFC 应用程序中都以一个公有的 AfxWinMain()函数作为程序的入口,此函数存储在 VC 安装目 录?\Microsoft Visual Studio\VC98\MFC\SRC 的 WINMAIN.CPP 文件中。 11. 简述 MFC 应用程序的启动流程. 简答:MFC 应用程序从 theApp 开始启动 (1) 构建 theApp 全局对象 (2) 操作系统加载 AfxWinMain 函数,启动应用程序, InitInstance ()函数调用 (3) 创建并显示窗口(InitInstance ()函数中“注册文档模板”过程中隐含地创建了主窗口) (4) 返回 AfxWinMain 函数,再调用函数 Run(),启动消息循环,接收系统或用户的消息,完成用户 需要的功能。 (5) 当接收 WM_QUIT 消息或按下<Alt+F4>键时,应用程序从 Run 成员函数内部调用函数 ExitInstance () ,使应用程序从当前实例中退出当应用程序终止时,执行清除工作,将控制权交给操作 系统。 12. AppWizard 所产生的 STDAFX 文件的作用? 简答:StdAfx.h 是预编译头文件,将常用的 MFC 头文件都放在 StdAfx.h 中,如 afxwin.h、afxext.h、 afxdisp.h、afxcmn.h 等,同时让 StdAfx.cpp 包含 StdAfx .h 作用:StdAfx.cpp 只需编译一次,并能生成预编译头文件,采用预编译头文件可以加速编译过程

13. 文档/视图结构的作用? 简答:文档对数据进行管理和维护,数据保存在文档类的成员变量中;视图在文档和用户之间起中介作 用, 接收用户的输入并接受用户的修改视图可以直接或间接的访问文档类中的成员变量, 它从文档类中 (而不是从存储介质中)将文档中的数据取出来,然后在屏幕上显示文档的数据。 14. 如何获取一个对话框中控件的指针? 简答:调用 CWnd: : GetDlgItem,获取一个 CWnd*指针调用成员函数。 15. 如何使窗口不可见? 简答:用 SW_HIDE 隐藏窗口,可以结合 FindWindow,ShowWindow 控制。 16. 如何创建和使用模态(模式)对话框? 简答: (1) 使用资源编辑器建立对话框资源并使用 ClassWizard 创建一个 CDialog 的派生类 (2) 创建派生类的对象 (3) 使用对象名调用 DoModal()函数,弹出模态对话框 (4) 如果选择 OK 按钮,则 DoModal()返回 IDOK;如果选择 Cancel 按钮,则 DoModal()返回 IDCANCEL,取消用户输入。 17. 如何禁止和使能控件? 简答:控件也是窗口,所以可以调用 CWnd::EnableWindow 使能和禁止控件。 m_wnd.EnableWindow(TRUE) m_wnd.EnableWindow(FALSE ) 18. 简述在 MFC 应用程序中 UpdateData 函数的作用及其参数含义与使用场合。 简答: UpdateData 只有一个 BOOL 类型的参数,UpdateData(FALSE)一般用于对话框控件连接的变量值刷新屏 幕显示;UpdateData(TRUE)用于获取屏幕数据到对话框控件连接的变量中。 19. 已知一个对话框上有一个编辑框控件,ID 为 IDC_EDIT1,为其关联了 CEdit 类型的变量 m_edit1, 说明如何改变编辑框内部的文本为“Hello”,写出程序代码。 简答: 第一种方法: m_edit1.SetSel(0,-1); m_edit1.ReplaceSel("Hello"); 第二种方法: SetWindowText("Hello"); 20. 在一个对话框上添加了三个单选按钮,要使它们之间自动实现互斥,应该注意什么问题?在 VC 环境下如何操作? 简答: 要实现一组单选按钮的自动互斥, 应该让它们的控件 ID 值连续, 并设置第一个单选按钮的 Group 属性,其他的不设。 21. 说明系统定时器消息(WM_TIMER)的使用方法及其用到的函数 .

简答:使用定时器消息的方法是:首先调用 SetTimer 函数定义定时器消息,包括消息产生的时间间隔 等;然后在相应的 WM_TIMER 消息处理里添加定时器消息响应代码;最后调用 KillTimer 释放该定时 器。 22. 在 MFC 中,要对一个消息进行响应(如菜单的 COMMAND 消息)需要定义该消息的处理函数,说 明添加一消息处理函数包括的三个内容? 简答: (1) 在头文件中声明消息处理函数 (2) 在实现文件中完成消息映射 (3) 在实现文件中加入消息处理函数 23. 单文档界面(SDI) 的应用程序和多文档界面(MDI)的应用程序的主要差别 简答: (1) SDI 的应用程序只有一个窗口;MDI 的应用程序每次可以读写多个文件或文档,可同时对多个 文档进行操作,可以有多个子窗口。 (2) 在创建 SDI 界面的应用程序时,不生成 CChildFrame 类,CMainFrame 类的基类为 CFrameWnd 在创建 MDI 界面的应用程序时,CMainFrame 类的基类为 CMDIFrameWnd。


推荐相关:

《C 面向对象程序设计》习题与上机解答-提交稿-陈维兴

《C++面向对象程序设计》习题与上机实验题解答 陈维兴...它表示 Windows 操作系统的窗口之间的继承关系。 ...//学生人数 }; double Student::sum=0; int Student...


面向对象程序设计-实验5内容及要求

《面向对象程序设计》第 5 次实验内容及要求一、实验题目 Windows 应用程序设计...四、实验内容 本次实验要求学生采用 C#编写一个 Windows 应用程序,以下两题任选...


面向对象程序设计Java学生信息管理系统

《面向对象程序设计与 Java》 课程设计 题目:学生信息管理系统 院、 系: 管理...普通学生 四、详细设计 4.1 开发环境:windows xp/7 4.2 开发工具:myEclipse+...


JAVA语言与面向对象程序设计课后习题答案

JAVA语言与面向对象程序设计课后习题答案_理学_高等...二者之间有何关系?设有对象―学生‖,试为这 个...运行 Java 程序的基本软件,它可以在 Windows 及 ...


《面向对象程序设计JAVA语言程序设计》期末考试试题及...

《面向对象程序设计JAVA语言程序设计》期末考试试题部分答案_理化生_高中教育_教育专区。java 试卷一、单选题 1. 在下列概念中,Java 语言只保留了 D A.运算符...


JAVA语言与面向对象程序设计课后习题答案

JAVA语言与面向对象程序设计课后习题答案_理学_高等教育...4.对象间有哪三种关系?对象―班级‖与对象―学生‖...运行Java程序的基本软件,它可以在Windows及Unix两种...


面向对象程序设计实验教学大纲

面向对象程序设计实验教学大纲‘题目与答案 ...大纲是面向计算机专业学生开设的《C++程序设计》实验...主要仪器设备及软件:PC+Windows 2000+VC 6.0 实验...


《面向对象程序设计》练习册答案

《面向对象程序设计》练习册答案_理学_高等教育_教育专区。面向对象程序设计习题一...7。需要。在安装 VB 时,有些系统文件被保存在 Windows 目录中,要删除 Windows...


面向对象程序设计C++课后题答案

第一章:面向对象程序设计概述 [1_1]什么是面向...这构成了学生的行为抽象部分, 用 C++语言的成员函数...例如我们同样双击 windows 系统桌面上的图标时, 有...


课程名称:面向对象程序设计

通信工程 《面向对象程序设计 Object Oriented ...面向对象程序设计 是新一代编程技术代表,是 Windows...学生通过本课程的学习,应当建立面向对象的编程思想,...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com