C++复习题.docx

上传人:小飞机 文档编号:3153660 上传时间:2023-03-11 格式:DOCX 页数:33 大小:50.37KB
返回 下载 相关 举报
C++复习题.docx_第1页
第1页 / 共33页
C++复习题.docx_第2页
第2页 / 共33页
C++复习题.docx_第3页
第3页 / 共33页
C++复习题.docx_第4页
第4页 / 共33页
C++复习题.docx_第5页
第5页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C++复习题.docx》由会员分享,可在线阅读,更多相关《C++复习题.docx(33页珍藏版)》请在三一办公上搜索。

1、C+复习题面向对象程序设计C+复习题 一、单选题 1对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是 A. 公有类型 B. 私有类型 C. 保护类型 D. 友元类型 2下列关于多态性的描述,错误的是( C ) A. C+语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现 D. 实现运行时多态性的机制称为动态绑定 3在C+语言中,数据封装要解决的问题是( D ) A. 数据的规范化 B. 便于数据转换 C. 避免数据丢失 D. 防止不同模块之间数据的非法访问 4使用private修

2、饰的成员变量,以下说法正确的是 A. 只能由本类中的函数使用,不能被外面的程序所访问。 B. 可以由本类中的函数使用,也可以被外面的程序所访问。 C. 只能由本类和派生类中的函数使用。 D. 可以在主函数中使用。 5对类的构造函数和析构函数描述正确的是 A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 C. 构造函数可以重载,析构函数也可以重载 D. 构造函数不能重载,析构函数也不能重载 6下面对静态数据成员的描述中,正确的是 A. 静态数据成员是类的所有对象共享的数据 B. 类的每个对象都有自己的静态数据成员 C. 类的不同对象有不同的静态数据成员值 D.

3、静态数据成员不能通过类的对象调用 7在VC+语言类体系中,不能被派生类继承的有 A. 转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数 8下面关于句柄正确的说法是 A. 句柄是一个标识Windows资源和设备等对象的变量。 B. 句柄是用户程序自定义的数据类型。 C. 用户程序使用句柄时不需要定义。 D. 句柄仅仅是一个抽象的概念,程序中不能使用句柄。 9下面关于动态链接库正确的说法是 A. 动态链接库提供的函数,在编译阶段能够连接到应用程序中。 B. 动态链接库提供的函数,在运行阶段能够连接到应用程序中。 C. 动态链接库本身不能单独设计、编译和调试。 D. 动态链接库的使用使得程

4、序缺乏灵活性。 10下面关于MFC应用程序中InitInstance函数正确的说法是 A. 该函数由用户定义。 B. 该函数不需要用户程序覆盖。 C. 该函数在WinMain函数内被显式调用。 D. 通过应用程序类的全局指针自动调用。 11为了在程序中显示一个模式对话框,应使用CDialgl类的成员函数 A. ShowWindow B. Create 1 C. DoModal D. InvalidateRect 12为了在程序中显示一个无模式对话框,应使用CWnd类的成员函数 A. ShowWindow(SW_NORMAL) C. DoModal B. Create D. Invalidate

5、Rect 13对于模式对话框的缺省按钮“OK”,下面哪种说法是正确的? A. 单击“OK”,系统认定用户在对话框中的选择或输入无效,对话框退出。 B. 单击“OK”,系统认定用户在对话框中的选择或输入有效,对话框退出。 C. 单击“OK”,对话框照常运行。 D. 单击“OK”,对话框暂停运行。 14设有语句int i=MessageBox(MFC对话框,提问,MB_YESNO|MB_ICONQUESTION);,下面哪种说法是正确的? A. 消息对话框有两个按钮“确定”和“取消”,单击“确定”返回IDOK。 B. 消息对话框有一个按钮“确定”,单击“确定”返回IDOK。 C. 消息对话框有两个

6、按钮“是”和“否”, 单击“是”返回IDYES。 D. 消息对话框有一个按钮“是”, 单击“是”返回IDYES。 15一个无模式对话框在退出时,应写的代码是 A. DestroyWindow; B. delete this; C. DestroyWindow;delete this; D. CloseWindow; 16在编辑框内用代码实现剪贴板功能,下面哪个说法是正确的 A. 使用UNIT类型变量访问剪贴板函数 B. 使用CString类型变量访问剪贴板函数 C. 使用int类型变量访问剪贴板函数 D. 使用CEdit类型变量访问剪贴板函数 17关于DDX/DDV技术,下面哪个说法是正确的。

7、 A. 用户只能为一个控件关联一个变量 B. 用户可以为同一个控件关联多个变量,变量名可以相同,类型必须不同。 C. 用户可以为同一个控件关联多个变量,类型可以相同,变量名必须不同。 D. 用户可以为同一个控件关联多个变量,但必须保证变量名不同且类型不同。 18一个Button控件同时具有OnCommand和BN_CLICKED两个消息处理函数,下面哪个说法是正确的。 A. 优先执行BN_CLICKED消息处理函数 B. 优先执行OnCommand消息处理函数 C. 同时执行 D. 编译错 19关于函数CListBox: GetText( int nIndex, LPTSTR lpszBuff

8、er ),下面的说法哪个是正确的 A. 取列表框中选中项的内容 B. 取列表框中选中项的索引 C. 取列表框中索引为nIndex的内容,送lpszBuffer D. 取列表框中内容为lpszBuffer的索引,送nIndex 20关于函数CButton:SetCheck (1),下面的说法哪个是正确的 A. 设置复选按钮为选中状态 B. 设置复选按钮为非选中状态 C. 设置复选按钮为不确定状态 D. 该函数不能设置复选按钮状态 21关于对话框应用程序的初始化代码,下面哪个说法是正确的 A. 初始化代码应放在WinMain函数中 2 B. 初始化代码应放在OnInitDialog函数中 C. 初

9、始化代码应放在对话框类的构造函数中 D. 初始化代码应放在用户自定义函数中 22关于函数CProgressCtrl:SetPos( int nPos ),下面的说法哪个是正确的 A. 设置进展条的步长 B. 设置进展条范围的上限 C. 设置进展条初始位置 D. 返回进展条当前位置 23关于函数CListBox:GetItemDataPtr( int nIndex ),下面的说法哪个是正确的 A. 取出与索引nIndex的列表项相关联数据的指针,类型为void* B. 取出与索引nIndex的列表项相关联数据的指针,类型CString* C. 取出与索引nIndex的列表项相关联数据的指针,类型

10、int* D. 取出索引nIndex的列表项字符串 24关于函数SetSel(0,-1),下面的说法哪个是正确的 A. 在编辑框内选中第0行文本 B. 在编辑框内未选中任何文本 C. 在编辑框内选中全部文本 D. 参数范围错 25关于滚动条的WM_VSCROLL消息映射,下面的说法哪个是正确的A. 在CScrollBar类中进行 B. 在CDialog类中进行 C. 在CFrameWnd类中进行 D. 在CView类中进行 26关于函数CProgressCtrl: SteiIt,下面的说法哪个是正确的 A. 使进展条前进一个步长 B. 使进展条后退一个步长 C. 设置进展条初始位置 D. 返回

11、进展条当前位置 27关于函数CListBox: GetCurSel( ),下面的说法哪个是正确的 A. 取列表框中选中项的内容 B. 取列表框中选中项的索引 C. 删除列表框中的选中项 D. 在列表框中添加一项 28关于函数UpdateData,下面哪个说法是正确的 A. 数据从相关联的成员变量向控件传输 B. 数据从控件向相关联的成员变量复制 C. 实现不同控件之间的数据交换 D. 实现与不同控件相关联变量的数据交换 29关于函数CListBox: ResetContent( ),下面的说法哪个是正确的 A. 更新列表框中的内容 B. 删除列表框中的第1项 C. 删除列表框中的最后1项 D.

12、 删除列表框中的所有项,即清空列表框 30为使工具栏按钮与对应菜单项功能一致,下面哪个说法是正确的 A. 工具栏按钮与对应菜单项的ID相同,工具栏按钮必须重写代码。 B. 工具栏按钮与对应菜单项的ID相同,工具栏按钮不用重写代码。 C. 工具栏按钮与对应菜单项的ID必须不同,工具栏按钮必须重写代码。 D. 工具栏按钮与对应菜单项的标题相同,工具栏按钮不用重写代码。 31关于消息WM_CONTEXTMENU的说法,下面哪个说法是正确的 A. 单击鼠标右键时发送 B. 单击鼠标左键时发送 C. 双击鼠标右键时发送 D. 双击鼠标左键时发送 32关于消息BN_CLICKED的说法,下面哪个说法是正确

13、的 A. 单击鼠标右键时发送 B. 单击鼠标左键时发送 C. 双击鼠标右键时发送 D. 双击鼠标左键时发送 33关与函数OnDraw,下面哪个说法是正确的 A. 窗口首次生成时自动调用 B. 窗口生成后调用 3 C. 窗口消失前调用 D. 窗口消失后调用 34关与函数OnNewDocumen,下面哪个说法是正确的 A. 创建文档时调用 C. 修改文档时调用 B. 打开文档时调用 D. 视图第1次连接到文档后,初始显示视图前调用该函数 35关与函数OnInitialUpdate,下面哪个说法是正确的 A. 创建文档时被调用 B. 打开文档时被调用 C. 修改文档时被调用 D. 视图第1次连接到文

14、档后,初始显示视图前调用该函数 36对滑动条控件有设置SetRange(0,100,TRUE); SetTicFreq(4); ,下面的说法哪个是正确的。 A. 滑动条的刻度线有25根 C. 滑动条的刻度线有4根 B. 滑动条的刻度线有26根 D. 滑动条的刻度线不确定 37定义逻辑字体的结构变量,下面哪个定义是正确的? A. CFont cf B. LOGFONT lf C. COLORREF rc D. LOGBRUSH cp 38设有定义CRect re(10,20,50,60) ,下面哪个说法是正确的? A. 定义的矩形左上角顶点坐标是(10,20),右下角顶点坐标是(50,60) B

15、. 定义的矩形左下角顶点坐标是(10,20),右上角顶点坐标是(50,60) C. 定义的矩形右上角顶点坐标是(10,20),左下角顶点坐标是(50,60) D. 定义的矩形右下角顶点坐标是(10,20),左上角顶点坐标是(50,60) 39下列说法正确的是 A. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C. 类的内联函数必须在类体内定义 D. 类的内联函数必须在类体外通过加关键字inline定义 40下列关于虚基类的描述,错误的是( B ) A. 设置虚基类的目的是为了消除二义性 B. 虚基类的构造函数

16、在非虚基类之后调用 C. 若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用 D. 若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数 二、添空题 1在面向对象方法中,类之间共享属性和操作的机制称为_继承_。 2通过使用new和delete两个运算符进行的分配为 动态存储 分配。 3在面向对象的程序设计中,类描述的是具有相似性质的一组 对象 。 4在C+中封装性、继承性和 多态性 是面向对象思想的主要特征。 5MFC框架程序是从 WinMain 函数开始执行的。 6一个const对象只能访问 const 成员函数。 7静态成员函数、内联函数和构造函数不

17、能声明为 虚函数 。 8在函数体之前加 const 关键字可以防止覆盖函数,改变数据成员的值。 9设在程序中使用如下语句申请了一个对象数组:Point *ptr=new Point2;,则在需要释放ptr指向的动态数组对象时,所使用的语句是 deleteptr; 。 10设有下列代码int a=0;double b=0;cinab;当用键盘输入1.25时,b= 0.25 。 验证程序 #include void main int a=0;double b=0; cinab; 4 coutbendl; 输入:1.25 输出:0.25 11CWnd的成员函数GetCheckedRadioButto

18、n的功能是返回按钮组中 被选中按钮的ID 。 12消息WM_COMMAND的参数wParam的高位字是控件的 通知代码 。 13消息映射宏DELCARE_MESSAGE_MAP的作用是用来声明对 消息映射 的支持。 14CComboBox的成员函数GetCurSel( ),在组合框中没有选项时返回 CB_ERR 。 15CListBox的成员函数InsertString(-1, “辽宁省”),把“辽宁省”添加到列表框中的位置是 最后 。 16CWnd的成员函数GetDlgItemText的功能是获取控件的 标题文本 。 17消息SB_THUMBTRACK是在滚动条 拖动滚动块 时发送 。 18

19、动态链接库可以提高程序模块的灵活性,因为它本身可以单独设计、 编译和调试 。 19Windows提供的图形界面接口GDI,使得用户能方便实现图形和文本的输出,不必关心与系统相连的 外部设备特性 。 20句柄是一个对操作系统资源的 间接引用 。 21每个MFC应用程序都需要 afxwin.h 头文件,该头文件定义了MFC的所有类、函数、变量等。 22每个Win32应用程序都需要 windows.h 头文件,该头文件及其所包含的文件定义了Windows所有的数据类型、函数调用、数据结构和符号常量等。 23可以使用ShowWindow(SW_NORMAL)显示无模式对话框,它是 CWnd 基类的成员

20、函数。 24在VC+6.0中,菜单、工具栏、对话框、图标等都被视为 资源 。 25Window中的每一个资源都是由标识符来定义的,其中的英文字母 不区分大小写 。 26列表框中第1项的索引值是 0 。 27CListBox的成员函数GetCurSel( ),在列表框中没有选项时返回 LB_ERR 。 28消息SB_LINEDOWN是在滚动条 向下滚动一行 时发送 。 29如工具栏按钮属性的提示项是“加法运算n加法”,则状态栏显示信息为 加法运算 。 30GDI提供高层绘图函数,支持与 设备 无关的图形显示。 三、问答题 1简述Windows编程特点。 答案: Windows程序有如下特点: 消

21、息驱动机制 在Windows应用程序中,通过接收消息、分发消息、处理消息来和用户进行交互。 图形设备接口 Windows提供了一个抽象的图形界面接口,称为图形设备界面,或简称GDI。使得用户直接利用系统的GDI函数就能方便实现图形和文本的输出,不必关心与系统相连的外部设备特性。 基于资源的程序设计 Windows应用程序包含众多图形元素,如光标、菜单、工具栏、位图、对话框等,统称为资源。 VC+提供了很多编辑器对这些资源进行编辑,使得用户可以方便地使用这些资源。 动态链接库 5 动态链接库提供的函数,能在Windows程序运行时进行装载和连接。可提高程序模块的灵活性。 2简述MFC程序的运行机

22、制。 答案: 程序运行时,首先定义全局程序对象,系统调用缺省的应用程序类的构造函数,该函数把全局程序对象的地址保存在一个全局指针中。 此时WinMain函数接收控制,首先通过全局指针调用应用程序类的InitInstance函数完成应用程序的初始化。 InitInstance函数执行结束,屏幕上显示窗体,WinMain进入消息主循环,等待接收用户消息。收到消息后转到系统的Run函数处理。 当用户点击退出按钮时,WinMain调用ExitInstance函数退出。 3什么是MFC的消息映射机制?简述映射一个消息的过程。 答案: 所谓消息映射机制,即指MFC类中将消息与消息处理函数联系起来,一一对应

23、的机制。 映射一个消息的过程由三个部分组成: 在处理消息的类中,使用消息宏LARE_MESSAGE_MAP 声明对消息映射的支持,并在该宏之前声明消息处理函数。 使用BEGIN_MESSAGE_MAP和END_MESSAGE_MAP宏在类声明之后的地方定义该类支持的消息映入口点,所有消息映射宏都添加在这里,当然不同的消息MFC都会有不同的消息映射宏。 定义消息处理函数,在该函数内添加消息处理代码。 4 简述DDX/DDV技术是如何实现数据交换和数据校验的?使用时应注意什么问题? 答案: DDX技术:DDX将数据成员变量同对话框模板内的控件相连接,使得数据在控件之间很容易地传输。 具体使用如下两

24、个函数: UpdateData(TRUE)或UpdateData实现控件数据向相关联的变量复制。 UpdateData(FALSE)实现数据由相关联的变量传给控件。 DDV技术:DDV技术能根据用户为与控件相关联的变量设定的取值范围,自动对数据进行校验,当超出范围时,发出相应的警告。 注意事项:在DDX/DDV技术中,允许用户为同一个控件关联多个变量,但必须保证这些变量名是互不相同的,且这些变量在同一个类型不能有多个变量。 5什么是静态控件?有哪些静态控件? 答案: 静态控件:用来显示一个字符串、框、矩形、图标,位图或增强的图元文件。它可以用来作为标签、框或用来分割其它的控件。一个静态控件一般

25、不接收用户输入,也不产生通知消息。 静态控件种类:静态文本,组框,静态图片。 6什么是按钮控件?有哪些按钮控件?简述它们的不同。 答案: 按钮控件:用来实现一种开与关的输入。 常见的按钮有三种类型:按键按钮,单选按钮,复选框按钮 按键按钮通常可以立即产生某个动作,执行某个命令,因此也常被称为命令按钮。 单选按钮通常成组出现,分组后每组中只能有一个被选中。 复选框通常成组出现,复选框被选中时,复选框中就加上一个标记,复选框常用的有选中和未选中两种状态,用户可以同时选中多个复选框。 7 什么是文档的序列化?其过程是怎样的? 答案: 文档的序列化:使一个类可序列化就是使其具有CArchive的序列化

26、功能,即可以在文档类的Serialize函数中直接通过CArchive引用变量进行该数据的读写操作。 6 序列化过程:在MFC中,一个可序列化的类必须是CObject的一个派生类,且在类声明中,需要包含DECLARE_SERIAL宏调用,而在类的实现文件中包含IMPLEMENT_SERIAL宏调用,这个宏有三个参数:前两个参数分别表示类名和基类名,第三个参数表示应用程序的版本号。最后还需要重载Serialize函数,使该类的数据成员进行相关序列化操作。 8简述单文档应用程序中是如何实现文档读写的? 答案: 当MFC AppWizard创建文档应用程序时,它会自动将“文件(File)”菜单中的“

27、打开(Open)”命令(ID号为ID_FILE_OPEN)映射到CWinApp的OnFileOpen成员函数。 当MFC AppWizard创建应用程序时,它会自动将“文件(File)”菜单中的“保存(Save)”命令与文档类CDocument的OnFileSave函数在内部关联起来,但用户在程序框架中看不到相应的代码。 打开和保存文档时,系统都会自动调用Serialize函数。事实上,MFC AppWizard在创建文档应用程序框架时已在文档类中重载了Serialize函数,通过在该函数中添加代码可达到实现数据序列化的目的。 9函数OnInitialUpdate和OnNewDocument都

28、可以对文档进行初始化工作,叙述它们的区别。 答案: 函数:OnInitialUpdate是当应用程序被启动时,或当用户从“文件”菜单中选择了“新建”或“打开”时,视图第1次连接到文档后,在初始显示视图前调用该函数,用户可重载此函数对文档所需信息进行初始化。 这里的初始化主要是对与文档相联系的视图进行,如设置视图大小、是否有滚动功能等。 函数OnNewDocument是当用户从“文件”菜单中选择“新建”命令时,框架首先构造一个文档对象,然后调用该函数,用户可在这里对文档数据进行初始化。 10什么是列表框和组合框控件?组合框控件有哪些类型? 答案: 列表框:是一个列有许多项目让用户选择的控件。用户

29、可以在其中选择一个或多个项,列表框中的项目数 目可灵活变化,程序运行时可根据需要随时增加或删除。当列表框中项目很多时,自动提供滚动 功能。 组合框:常用的项目在组合框中显示,用户可以选择其中一项。同时还配有一个编辑框,输入组合框中没 有的项。组合框中的项目数目可灵活变化,程序运行时可根据需要随时增加或删除。 组合框类型:简单组合框、下拉式组合框和下拉式列表框。 四、程序分析题 1分析下面的程序 要求: 写出程序运行结果。 说明语句*this = a;的含义。 #include class COne public: COne x = y = 0; COne(int a, int b)x = a;

30、 y = b; void copy(COne &a); void print coutx , yCreate(Hello!,WS_CHILD|WS_VISIBLE|WS_BORDER|SS_CENTER,CRect(20,20,120,40),this);/ CFont *font=this-GetFont;/ cs-SetFont(font);/ return TRUE; 答案: cs-Create(Hello!,WS_CHILD|WS_VISIBLE|WS_BORDER|SS_CENTER,CRect(20,20,120,40),this); /创建静态控件,标题为Hello!,子窗体风格

31、,带边框,文本局中,控件左上角顶点坐标为(20,20),宽120,8 高40,父类窗口为当前窗口。 CFont *font=this-GetFont;/获得对话框字体 cs-SetFont(font);/用对话框字体设置静态控件字体 函数OnInitDialog在显示对话框之前执行,完成对话框的初始化。 该函数完成的功能:在对话框上创建一个具有指定风格的静态控件,标题为Hello!。 4设有一个对话框应用程序,对话框类名为CEx_DlgCtrlsDlg,添加两个Button按钮,ID号分别为IDC_BUTTON1和IDC_BUTTON2。分析下面的程序: 要求: 在注释符号/后面对各条语句进行

32、注释,说明该语句的作用。 该函数在什么时候被调用?写出该函数完成的功能。 BOOL CEx_DlgCtrls1Dlg:OnCommand(WPARAM wParam, LPARAM lParam) WORD nCode=HIWORD(wParam); WORD nID=LOWORD(wParam); if(nID=IDC_BUTTON1)&(nCode=BN_CLICKED) / MessageBox(你按下的是Button1); if(nID=IDC_BUTTON2)&(nCode=BN_CLICKED) / MessageBox(你按下的是Button2); return CDialog:

33、OnCommand(wParam, lParam); / 答案: if(nID=IDC_BUTTON1)&(nCode=BN_CLICKED) /如果控件标识符是IDC_BUTTON1并且事件是BN_CLICKED,执行下面语句。 if(nID=IDC_BUTTON2)&(nCode=BN_CLICKED) /如果控件标识符是IDC_BUTTON2并且事件是BN_CLICKED,执行下面语句。 return CDialog:OnCommand(wParam, lParam); /把控件的消息交由其它函数处理,如OnButton1。 该函数在控件发出通知消息OnCommand时执行。 函数功能:

34、鼠标单击“Button1”时,显示消息对话框,内容为你按下的是Button1。 鼠标单击“Button2”时,显示消息对话框,内容为你按下的是Button2。 5设有一个单文档应用程序,IDR_MAINFRAME为菜单标识。下面是在框架类中添加的WM_CONTEXTMENU消息处理函数。分析下面的程序段: 要求: 在注释符号/后面对各条语句进行注释,说明该语句的作用。 该函数在什么时候被调用?写出该函数完成的功能。 void CEx_SystemMenuView:OnContextMenu(CWnd* pWnd, CPoint point) CMenu mPop; mPop.LoadMenu(

35、IDR_MAINFRAME); / CMenu* p=mPop.GetSubMenu(4); / p-TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTALIGN,point.x,point.y,this); / 答案: void CEx_SystemMenuView:OnContextMenu(CWnd* pWnd, CPoint point) CMenu mPop; mPop.LoadMenu(IDR_MAINFRAME); /装载菜单IDR_MAINFRAME 9 CMenu* p=mPop.GetSubMenu(4); /取菜单第4项指针,即“加减法”菜单。

36、p-TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTALIGN,point.x,point.y,this);/显示弹出式菜单 / point.x,point.y为菜单位置,this为父窗口 在单文档应用程序窗口空白处,按下鼠标右键时执行该函数。 功能是显示快捷菜单,快捷菜单是菜单IDR_MAINFRAME的第4项 6下面是在关于状态栏设置的一段代码。 要求: 在注释符号/后面对各条语句进行注释,说明该语句的作用。 该函数在什么时候被调用?写出该函数完成的功能。 void CEx_StatusBarView:OnMouseMove(UINT nFlags, CPoin

37、t point) CString str; CMainFrame* pFrame=(CMainFrame*)AfxGetApp-m_pMainWnd; CStatusBar* pStatus=&pFrame-m_wndStatusBar; / if (pStatus) pStatus-SetPaneStyle(1, SBPS_POPOUT); / str.Format(X=%d, Y=%d,point.x, point.y); pStatus-SetPaneText(1,str); / CView:OnMouseMove(nFlags, point); 答案: void CEx_StatusB

38、arView:OnMouseMove(UINT nFlags, CPoint point) CString str; CMainFrame* pFrame=(CMainFrame*)AfxGetApp-m_pMainWnd; CStatusBar* pStatus=&pFrame-m_wndStatusBar; / 获得主窗口中的状态栏指针 if (pStatus) pStatus-SetPaneStyle(1, SBPS_POPOUT); /设置状态栏风格 str.Format(X=%d, Y=%d,point.x, point.y); pStatus-SetPaneText(1,str);

39、 /在状态栏第二个窗格显示文本str,str为鼠标位置 CView:OnMouseMove(nFlags, point); 该函数当鼠标在单文档窗口内移动时被调用,状态栏第二个窗格显示鼠标当前位置。 7分析下面的程序 要求: 在注释符号/后面对各条语句进行注释,说明该语句的作用。 该函数在什么时候被调用?写出该函数完成的功能。 BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs) int cxScreen = :GetSystemMetrics(SM_CXSCREEN); int cyScreen = :GetSystemMetrics(SM_CY

40、SCREEN); /下面两条语句的作用是 cs.cx = cxScreen/2; 10 cs.cy = cxScreen/2-150; /下面两条语句的作用是 cs.x=(cxScreen-cs.cx)/2; cs.y=(cyScreen-cs.cy)/2; cs.style &=WS_MAXIMIZEBOX; / 答案: BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs) int cxScreen = :GetSystemMetrics(SM_CXSCREEN); int cyScreen = :GetSystemMetrics(SM_CYSC

41、REEN); /下面两条语句的作用是设置主窗口宽为1/2屏宽、高为1/2屏幕高 cs.cx = cxScreen/2; cs.cy = cxScreen/2-150; /下面两条语句的作用是设置主窗口左上角坐标,使窗口位于屏幕中央 cs.x=(cxScreen-cs.cx)/2; cs.y=(cyScreen-cs.cy)/2; cs.style &=WS_MAXIMIZEBOX; /去处最大化按钮 当窗口创建之前,系统自动调用该函数。 该函数完成对窗口风格的设置,使窗口宽为1/2屏宽、高为1/2屏幕高,位于屏幕中央,无最大化按钮。 8分析下面的程序段 要求: 在注释符号/后面对各条语句进行注

42、释,说明该语句的作用。 该函数在什么时候被调用?写出该函数完成的功能。 void CEx_FontView:OnDraw(CDC* pDC) LOGFONT lf; memset(&lf,0,sizeof(LOGFONT); lf.lfItalic=1; CFont font; font.CreateFontIndirect(&lf); / pDC-SelectObject(&font); / pDC-TextOut(10,10,我喜欢Visual C+!); / 答案: void CEx_FontView:OnDraw(CDC* pDC) LOGFONT lf; memset(&lf,0,sizeof(LOGFONT); lf.lfItalic=1; CFont

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号