东华理工测绘学院C++复习题.doc_第1页
东华理工测绘学院C++复习题.doc_第2页
东华理工测绘学院C++复习题.doc_第3页
东华理工测绘学院C++复习题.doc_第4页
东华理工测绘学院C++复习题.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

填空题:1. 创建一个完整的窗口,需要经过哪四个步骤:设计一个窗口类,注册一个窗口类,创建窗口,显示及更新窗口。2. 结构体默认情况下,其成员是公有的。类默认情况下,其成员是私有的。3. BOOL creat 1 LPCTSTR Lpszcaption,DWDRD dwstyle CONST rect Cwnd* pparentwnd UNINT nzd4. 创建文本插入符用CreatSdidcaret()函数来实现。5. 一个属性表由一个或者多个属性页组成。6. 重载构成的条件:函数的参数类型,参数个数不同。7. :叫做作用域标识符,用于指明一个函数属于哪个类或一个数据成员属于哪个类,:前面如果不跟类名,表示全局函数。8. 利用MFC实现功能的方法:9. SDK全局函数 2)CDC类的 3)Cclient DC类 4)Cwindow DC类 10. 对话框控件的访问共有七种方式:其中第一种方式用到了GetDlgItem(),和Get(set)windowText()函数。11. 当利用Create函数创建非模态对话框时,还需要调用show window函数将这个对话框显示出来。12. 打开Classview选项卡,可以看到基于对话框的Test应用程序有三类: CAboutDlg .CtestApp和CtestDlg 13. 分隔栏在子菜单中是占据索引位置。14. 响应Test菜单项命令的顺序依次是视图类.文档类.框架类.应用程序类 。15. 前缀fn.h.m_.p含义分别是函数.句柄.类的数据成员.指针 。16. 变量包含三个部分:名称.类型和 值 。17. 重载构成的条件:函数的参数类型、参数个数不同,才能构成函数额度重载。可以利用SDK全局函数、MFC的CDC类、MFC的CClientDC类、MFC的windowed类实现画线功能。设置一个标记菜单,需要使用CMenu类的checkMenuItem这个函数,实现图形标记菜单项的效果,可以利用CMenu类的SetMenuItemBitmaps函数。对话框的两种类型:模态对话框和非模态对话框。结构体的关键字:struct,类的关键字是class。函数调用过程的3个步骤分为:函数调用(或参数传递)、函数体执行、返回。18. 类的私有成员只能被该类的成员函数或友函数访问19. 创建一个完整的窗口,需经过一下四个步骤:设计一个窗口、注册窗口类、创建窗口、显示及更新窗口。20. 类和结构的定义除了实用关键字class和struct不同之外,更重要的是在成员的访问控制方面有所差异。21. 结构体默认情况下,其成员是公有(public)的,类默认情况下,其成员是私有(private)的。22. TranslateMessage函数并不会修改原有的消息,它只是产生新的消息并投递到消息队列中23. 在一个类当中,公有成员是可以在类的外部进行访问的,而私有成员就只能在类的内部进行访问。24. 构造函数的作用是对对象本身做初始化工作,也就是给用户提供初始化类中成员变量的一种方式。25. 析构函数是反向的构造函数,析构函数不允许有返回值,更重要的是析构函数不允许带参数,并且一个类中,只能有一个析构函数。26. 凡是从CWnd派生的类,他们既可以接收标准消息,也可以接受命令消息和通告消息。1. 一个windows应用程序至少要有一个(A)。A. 窗口 B.句柄 C.主函数 D.消息 2. 窗口是通过(A)句柄来标识的。A. 窗口 B.光标C.图标 D.消息 3. 下列哪项不是MSG结构体的成员变量(D).A.Hwnd B.Message C.Wparam D.Hwstance4. 画笔的宽度(D)A.小于1 B.大于1C.等于1 D.小于等于15. 点线的线型为(B)A.PS-DATH B.PS-DOTC.PS-SOLLP D.PS-Point 6. 下列参数不属于EnableMenuItem函数的为(D)。A. MF_BYCOMMANDB. MF_BYPOSITIONC.MF_GRAYED D.MF_CHECKED7. 【新建】菜单项的标识为(A)A.ID_FILE_NEW B.ID_FILE_OPEN C.0 D.1 8. 单文本类的MFC APP Wizard(exe)工程的Menu工程默认运行界面中新建中打印的索引号为(B)A.4 B.5 C.6 D.39. CMenu类的成员函数(A)可以设置菜单项的状态。A. EnbleMenuIteB. SetMenuItemBitmapsC. SetDefaeultItm D. CheckMenuItem10. 在MFC编程过程中,对控件的操作都是通过相关的(A)来完成。A.MFC类 B.Cprop1C.CcomboRox D.Cpropertysheet11. 下列哪为指定窗口类的图标句柄(B)A. Hcursor B.hicoC. hmstance D.hbrbackground12. Windowc应用程序的消息处理机制(A)A. 操作系统消息队列应用程序操作系统窗口过程B. 操作系统应用程序消息队列窗口过程C. 应用程序消息队列操作系统窗口过程D. 应用程序操作系统消息队列窗口过程13. 在输出流中插入一个换行,将使用(C)A. enter B. Next C. endl D. Shift14. RGB宏有三个参数,分别代表红,绿,蓝三个颜色的值BYiE类型,取值范围(D)A. . 0128 B. 0156 C. 0256 D. 025515. 一个子菜单可以有(A )个默认菜单项A. 1 B. 2 C. 3 D. 416. UI指的是(B)A. 禁用菜单项 B. 用户接口C. 默认菜单项 D. 移除菜单项17. GetSubMenu函数是(B)的成员函数A. CWnd B. CMenu C. CView D. CFrame18. SetDefaultItem函数的第二个参数的默认值为(B)A.True B. CMenu C. CView D. CFrame19. 按钮的单击:列表框的选择这类消息都属于(B)A. 标准消B.通造消息C. 命令消息D. 字符消息20. 为了还原对话框需要保存其原始位置对话框的原始位置通过调用(A)函数能得到A.GetWindowRect B.SetDlgItemText C. GetDlgItem D. SetDlgItemText21. 为了建立一个属性表单,首先要建立一个( )对象。A.CpropertySheet B.CpropertyPage C.CpropersSheet D.CpropView22. CMenu类的成员函数( A )可以设置菜单项的状态。A. EableMenuItemB. SetMenuItemBotmaps C. SetDefaultItem D. CheckMenuItem23. 在MFC编程中,对控件的操作都是通过相关的( A )来完成。A.MFC类 B.Cpropl C.CcomboBox D.CpropertySheet24. 4.创建图形插入符用下列那个函数来实现( B )。A. CreatSolidCaret B.CreatCaret C.CetMetrics D.ShowCaret25. 5.自动控制文字变色的过程通过下列哪个函数来实现( D )A. DrawText函数 B.OnDraw函数 C.OnChar函数 D.SetFimer函数26. 6.运用SetTimer函数实现的计时器功能中时间间隔以(D)为单位。A. 小时 B.分 C.秒 D.毫秒27. ( C )不允许带参数,并且在一个类中只能有一个。A. 成员函数 B.构造函数 C.析构函数 D.主函数28. c+中输出x的表示方法为( C )A. A.cout-x B.cin-x C.coutx D.cinCtestApp-Winmain-CwinApp B. CtestApp-theApp - CwinApp -Winmain C. theApp-CwinApp-CtestApPP-WinmainD. CtestApp-CwinApp-theApp-Winmain30. 下列哪项不是MFC ClassWixarad对话框的选项卡( C )A. Message Maps B.Member Variables C.Class Name D.Class Info31. 如果类中的所有成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为(A)A.public B、protected C、private D、static32. 下列类定义的叙述中正确的是(D)A. 数据成员必须被声明为私有的B. 成员函数只能在类体外进行定义C. 类成员的默认访问权限是保护的D. 类定义中包括数据成员和函数成员的声明33. 下列对类的构造函数和析构函数的叙述,正确的是(A)A. 构造函数可以重载,析构函数不能重载B. 构造函数不能重载,析构函数可以重载C. 构造函数可以重载,析构函数也可以重载D. 构造函数不能重载,析构函数也不能重载34. 如果类中的所有成员在定义时都没有使用关键字public、private和protected则所有成员变量默认定义为(C)A、public B、protected C、private D、static35. 下列有关继承和派生的叙述中,正确的是(D)A.作为基类的类不能被实例化B.派生类不能访问基类的保护成员C.虚函数必须在派生类中重新实现D.派生类应当向基类的构造函数传递参数36. 下列关于派生类的构造函数和析构函数中,错误的是(D)A.派生类的构造函数会隐含调用基类的构造函数B.如果基类中没有默认构造函数,那么派生类必须定义构造函数C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数37. C语言中的标示符只能是字母、数字、下划线三种字符组成,且第一个字符()A.必须是字母B.必须是字母或下划线C.必须为下划线D.可以是字母、数字和下划线中任一种字符38. 类的实例化是指()A.定义类B创建类的对象C.指明具体类D.调用类的成员39. 一个类的析构函数是在( C )时被自动调用。 A. 使用该类对象前 B. 使用该类对象后 C. 该类对象撤消 D. 定义该类对象 40. 关于类和对象的说法不正确的是(B)A. 对象是类的一个实例;B. 一个类只能有一个对象;C. 一个对象只能属于一个具体的类;D. 雷雨对象的关系和数据类型与变量的关系是相似的。41. 下列不是构造函数的特征的是(D)A. 构造函数的函数名和类名相同;B. 构造函数可以重载;C. 构造函数可以设置默认参数D. 构造函数必须指定类型说明。42. 运行是的多态性指(B)A. 用指向对象的基类指针或引用一个纯虚函数;B. 用指向对象的基类指针或引用一个虚函数;C. 以任何方式调用一个纯虚函数D. 以任何方式调用一个虚函数。43. 继承具有(B)即当基类本身也是某个类的派生类时,底层的派生类也会自动继承简介基类的成员A. 规律性B.传递性C.重复性D.多样性44. (A)是析构函数的特征A. 一个类中稚嫩定义一个析构函数B. 析构函数名与类名相同C. 析构函数的定义只能在类体内D. 析构函数可以有一个或多个参数45. 下列输出字符“&”的方法中,不正确的是(C)A. cout&B. Coutput&C. Cout.put(&)D. Char c=&;coutview-Frame-appB. View-Frame-doc-appC. Frame-doc-View-appD. View-doc-Frame-app55. 利用Create函数创建非模态对话框时,还需要调用什么函数将这个对话框显示出来(A)A. ShowwindowB. ShowcreateC. MessageBoxD. UpdateWindow简答题1. 在VC+中,工程与各种源文件之间是什么关系?VC+吧要完成的某个程序设计任务称之为工程,要进行程序设计先要建立一个工程,即首先要搭建一个空框架。要完成具体的任务还必须往那个工程里添加源文件(如:cpp文件.c文件.h文件等)。工程管理添加在工程下的各种源文件,这些源文件有机会结合,通过翻译和连接生成课执行文件。2. 类的虚拟性和派生性在程序设计中各起到什么作用?类的派生性的作用:派生性能从一个已经存在的类(基类)派生出一个新的类(派生类),派生类可以继承基类的部分或全部数据成员和成员函数,再增加新的数据成员和成员函数。从而减少了程序设计的工作量,提高了程序代码的重要性。类的虚拟性的作用:在windows程序设计中,为实现某个功能,系统预先设置了一序列的函数调用流程。3. 消息结构体中最重要的数据成员是那几个?简述消息附加参数的作用。消息结构体的定义为:Typedef struct tagMSGHWND hwnd;UINT message;WPARAM wParam;LPARAM lParam;DWORD time;POINT pt;MSG;其中最重要的3个数据成员是message,wParam和lParam。wParam和lParam代表消息的附加参数,有时消息处理的过程中需要这两个参数,如WM_CHAR消息标识符(字符消息标识符),当按下键盘上的某个字符键时便会产生这一消息标识符,但按下所有字符键都会产生WM_CHAR消息标识符,在字处理程序仅靠WM_CHAR是无法确认按下那个字符键的。WM_CHAR消息标识符所带的附加参数wParam中便存放了字符信息,具体来说wParam中存放了字符的ASCII码,据此以判断按下了那个字符键。4. 模态对话框和非模态对话框的区别?(1) 模态对话框,弹出后该程序的其它窗口就呈不可用的状态,原来程序暂停执行,直到这个模态窗口关闭后才回到原来程序继续。(2) 非模态的就是直接显示出来,然后原来的程序继续执行下面的语句,而且其它窗口也呈可用状态。5. MFC消息映射机制的具体实现方法。在每个能接收和处理消息的类中,定义一个消息和消息函数静态对照表,即消息映射表。在消息映射表中,消息与对应的消息处理函数指针是成对出现的。某个类能处理的所有消息及其对应的消息处理函数的地址都列在这个类对应的静态表中。当有消息需要处理时,程序只要搜索该消息静态表,查看表中是否含有该消息,就可知道该类能否处理此消息。如果能处理该消息,则同样依照静态表能很容易找到并调用对应的消息处理函数。6. C+窗口类对象与窗口的区别?C+窗口类对象与窗口并不是一回事,它们间唯一的关系是C+窗口类对象内部定义了一个窗口句柄变量,保存了与这个C+窗口类对象相关的那个窗口的句柄。窗口销毁时,与之对应的C+窗口类对象销毁与否,要看其生命周期是否结束。但C+窗口类对象销毁时,与之相关的窗口也将销毁。7. 静态成员函数和非静态成员函数的区别?静态成员函数和静态成员变量属于类本身,在类加载的时候,即为它们分配了空间,所以可以通过类名:函数名或类名:变量名来访问。而非静态成员函数和非静态成员属于对象的方法和数据,也就是应该首先产生类的对象,然后通过类的对象去引用。8. 构造函数和析构函数的作用是什么?什么时候需要自己定义构造函数和析构函数?构造函数的作用:用于新建对象的初始化工作。析构函数的作用:用于在撤销对象前,完成一些清理工作,比如:释放内存等。每当创建对象时,需要添加初始化代码时,则需要定义自己的构造函数;而对象撤销时,需要自己添加清理工作的代码时,则需要定义自己的析构函数。9. 为什么一般把快捷键和图标资源的ID定义为与菜单的ID相同?图标资源是以位图形式保存的,这一位图资源会放在工程的那个文件夹中?把快捷键和图标资源的ID定义为与菜单的ID相同,原因是在用LoadFrame()函数装载菜单时也可以同时装载这两种资源,图标资源是以位图形式保存的,这一位图资源会放在工程的资源文件夹中。10. 3.什么是简单继承?什么是多重继承?在软件开发过程中,继承有什么好处?(1) 简单继承:派生类的基类只有一个的继承方法。(3分)(2) 多重继承:派生类的基类同时有多个时的继承方法。(3分)(3) 继承的好处:由于可以利用已有的软件基础来进行新的软件开发,所以能提高软件开发效率和软件质量。11. AppWiard和ClassWizard的作用是什么?AppWiard负责创建应用程序框架,ClassWizard可以让程序员以交互式方式网应用程序框架里添加各种资源、消息和处理函数等。12. API应用程序中WinMain()函数和WndProc()函数的作用分别是什么?WinMain()函数负责建立窗口和建立消息循环,WndProc()函数负责消息的处理。13. 构成函数的覆盖的条件为:基类函数必须是虚函数(使用Virtual关键字进行声明)发生覆盖的两个函数要分别位于派生类和基类中函数名称与参数列表必须完全相同编程题1.(5分) 假设已有图形IDB_BITMAP,在oncreate 函数中,创建该图形的插入符。答:在view类的头文件:private:(Bitmap bitmap);在oncreate 函数中: Bitmap.LoadBitmap(IDB_BITMAP1); Createcaret(&bitmap); Showcaret();2.假设其他函数都已编辑,只需编辑ontimer就可以完成将IDS_STRINGVC的字符串以左输出的方式输出(m_nWidth 每次增加5,输出的颜色为红,下面200处输出) m_nWidth +=5; CClientDC dc(this); TEXTMETRIC tm;dc.GetTextMetrics(&tm); CRect rect; rect.left=0; rect.rtop=200; rect.bottom=rect.top+tm.tmheight; dc.SetTextColor(RGB(255,0,0); CString str; str.LoadString(IDS_STRINGVC); dc.DrawText(str,rect,DT_LEFT); 3.(15分)在onchar中实现“回车到下一行”,“退格”等功能。(字体为300,“华文行楷”,定义cpoint 为m_peorigin)答:CClientDC dc(this); CFont font; font.CreatepointFont(300,”华文行楷”,NULL); CFont *poldFont=dc.Selectobject(&font); TEXTMETRIC tm; If(0x0d=nchar) m_strLine.Empty(); m_Ptorigon.y+=tm.tmHeight;else if (0x08=nchar)COLORREF clr=dc.SetTextcolor(dc.GetBKColor();dc.TextOut(m_ptorigin.x,m_ptorigin.y,m_strLine);m_strLine=m_strLine.Left(m_strLine.GetLength()-1);dc.SetTextColor(clr); elsem_strLine+=nchar; dc.TextOut(m_ptorigin.x,m_ptOrigin.y,m_strLine);dc.Selectobject(poldFont);4.如何在CDrawView类中实现划线功能,在消息响应函数OnLButtonUp中添加程序?(已经在CDrawView类添加了一个新的成员变量m_ptOrigin,此变量的类型设置为CPoint,并且访问权限为Private,并且已在消息响应函数OnLButtonDown中保存了鼠标按下点的信息)void CDrawView:OnLButtonDown(UINT nFlags, CPoint point) m_ptOrigin=point;CView:OnLButtonDown(nFlags, point);void CDrawView:OnLButtonUp(UINT nFlags, CPoint point) CView:OnLButtonUp(nFlags, point);答案:1.HDC hdc; hdc=:GetDC(m_hWnd);MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL); LineTo(hdc,point.x,point.y); :ReleaseDC(m_hWnd,hdc);*/2.CDC *pDC=GetDC(); pDC-MoveTo(m_ptOrigin); pDC-LineTo(point); ReleaseDC(pDC);3. ClientDC dc(this);dc.MoveTo(m_ptOrigin);dc.LineTo(point);4.CWindowDC dc(this);dc.MoveTo(m_ptOrigin);dc.LineTo(point);5.如何用一个红色的,宽度为1的实线的画笔来连续划线,在消息响应函数OnMouseMove中添加程序?(在CDrawView类中添加了成员变量m_ptOrigin和m_bDraw,m_ptOrigin的类型设置为CPoint和访问权限为Private,m_bDraw的类型设置为BOOL和访问权限也为Private,并且在消息响应函数OnLButtonDown和OnLButtonUp中添加了信息)void CDrawView:OnLButtonDown(UINT nFlags, CPoint point) m_ptOrigin=point;m_bDraw=TRUE;CView:OnLButtonDown(nFlags, point);void CDrawView:OnLButtonUp(UINT nFlags, CPoint point) m_bDraw=FALSE;CView:OnLButtonUp(nFlags, point);void CDrawView:OnMouseMove(UINT nFlags, CPoint point) CView:OnMouseMove(nFlags, point);答案:CClientDC dc(this); CPen pen(PS_SOLID,1,RGB(255,0,0); CPen *pOldPen=dc.SelectObject(&pen); if(m_bDraw=TRUE) dc.MoveTo(m_ptOrigin); dc.LineTo(point); m_ptOrigin=point; dc.SelectObject(pOldPen);6.如果希望矩形内部是透明的,能够看到被遮挡的图形,那么怎么样创建一个透明画刷,在消息响应函数OnLButtonUp中添加程序?(已经在CDrawView类添加了一个新的成员变量m_ptOrigin,此变量的类型设置为CPoint,并且访问权限为Private,并且已在消息响应函数OnLButtonDown中保存了鼠标按下点的信息)void CDrawView:OnLButtonDown(UINT nFlags, CPoint point) m_ptOrigin=point;CView:OnLButtonDown(nFlags, point);void CDrawView:OnLButtonUp(UINT nFlags, CPoint point) CView:OnLButtonUp(nFlags, point);答案:CClientDC dc(this);CBrush*pBrush=CBrush:FromHandle(HBRUSH)GetStockObject(NULL_BRUSH);CBrush *pOldBrush=dc.SelectObject(pBrush);dc.Rectangle(CRect(m_ptOrigin,point);dc.SelectObject(pOldBrush);7.新建一个对话框并在对话框上新建几个控件,一个命令按钮,三个静态文本控件和三个编辑框控件,将静态文本控件文本分别设置为:number1,number2,number3;命令控件的caption属性设置为ADD。获得编辑框中的内容的方法有哪几种?答:(1)利用GetWindowsText函数得到编辑框中的内容,再用SetWindowsText函数将结果显示在第三个编辑框中。代码:GetDlgItem(IDC_EDIT1)-GetWindowsText(ch1,10);GetDlgItem(IDC_EDIT2)-GetWindowsText(ch2,10);(2)利用GetDlgItemText函数,返回对话框制定ID的空间的文本。代码:GetDlgItemText(IDC_EDIT1,ch1,10);GetDlgItemText(IDC_EDIT2,ch2,10);(3)利用GetDlgItemInt和SetDlgItemInt函数来实现,GetDlgItemInt函数返回指定控件的文本,并将其转化为一个整型数值。代码: num1=GetDlgItemInt(IDC_EDIT1);num2=GetDlgItemInt(IDC_EDIT2);(4)将三个编辑框分别与对话框类的三个成员变量相关联,然后通过这些成员变量来检索和设置编辑框的文本,再通过调用UpdataData函数来初始化对话框控件或从对话框获取数据。(5)为编辑框控件增加一个控件类型的变量,再利用控件变量调用GetWindowsText函数来获取编辑框中的文本。(6)通过SendMessage来发送这条消息,从而获取窗口的文本。(7)通过发送消息来完成对控件的访问,使用SendDlgItemMessage函数来获取编辑框的文本内容。8.请用其中的一种方式,利用上面的对话框实现这样的功能:在前面两个编辑框的中分别输入一个数字,然后点击【ADD】按钮,对前面两个编辑框的数据求和,并将结果显示在第三个编辑框中。答:(1)首先添加【ADD】按钮单击响应函数ADD;(2)在这个函数中添加如下代码:Void CTestDlg:ADD()int num1,int num2,num3;Char ch110,ch210,ch310;GetDlgItem(IDC_EDIT1)-GetWindowsText(ch1,10);GetDlgItem(IDC_EDIT2)-GetWindowsText(ch2,10);num1=atoi(ch1);num2=atoi(ch2);num3=num1+num2;Itoa(num3,ch3,10)SetDlgItemText(IDC_EDIT3,ch3);9.如何使得第三个编辑框的所有内容都被复选?答:利用EM_GETSEL消息来获得编辑框中的复选内容,这个消息的wParam参数将接收复选内容的开始位置,lParaw参数将接收复选内容的结束位置,这两个参数都要求有指向DWORD类型的指针,然后用EM_SETSEL消息来设置编辑框控件中的复选内容。代码:SendDlgItemMessage(IDC_EDIT3,EM_SETSEL,1,3);m_edit3.SetFocus(); 10.利用SDK全局函数实现画线功能。void CDrawView:OnLButtonUp(UINT nFlags,CPoint point)HDC hdc;/#定义一个DC hdc=:GetDC(m_nWnd); MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL); LineTo(hdc,point.x,point.y); :ReleaseDC(m_ptOrigin,hdc);/#释放DCCView:OnLButtonUp(nFlags,Point);11.利用MFC的CClientDC类实现画线功能。void CDrawView:OnLButtonUp(UINT nFlags,CPoint point)CClientDC dc(this);/#获得本窗口的指针把this替换成GetParent()dc.MoveTo(m_ptOrigin);/# dc.LineTo(point);/#CView:OnLButtonUp(nFlags,Point);12.利用MFC的windowed类实现画线功能。void CDrawView:OnLButtonUp(UINT nFlags,CPoint point)Windowed dc(this);/#dc.MoveTo(m_ptOrigin);/#dc.LineTo(point);/#CView:OnLButtonUp(nFlags,Point);13.分别利用GetWindowText函数,GetDlgItemText函数、GetDlgItemInt函数实现对两个编辑框中的数字求和。GetWindowText函数:(10分)Int num1,num2,num3;Char ch110,ch210,ch210;GetDlgItem(IDC_EDIT1)-GetWindowText(ch1,10);GetDlgItem(IDC_EDIT2)-GetWindowText(ch2,10);num1=atoi(ch1);num2=atoi(ch2);num3=num1+num2;itoa(num3,cha3,10);GetDlgItem(IDC_EDIT3)-GetWindowText(ch3);GetDlgItemText函数:(10分)Int num1,num2,num3;Char ch110,ch210,ch210;GetDlgItemText(IDC_EDIT1,ch1,10);GetDlgItemText(IDC_EDIT2,ch2,10);num1=atoi(ch1);num2=atoi(ch2);num3=num1+num2;itoa(num3,cha3,10);SetDlgItemText(IDC_EDIT3,ch3);GetDlgItemInt函数:(10分)Int num1,num2,num3;num1=GetDlgItemInt(IDC_EDIT1);num1=GetDlgItemInt(IDC_EDIT2);num3=num1+num2;SetDlgItemInt(IDC_EDIT3,ch3);14.假设其他函数都已编辑,只需编辑ontimer就可以完成将IDS_STRINGVC的字符串以左输出的方式输出(m_nWidth 每次增加5,输出的颜色为红,下面200处输出)答: m_nWidth +=5; CClientDC dc(this); TEXTMETRIC tm; dc.GetTextMetrics(&tm); CRect rect;ect.left=0;ect.rtop=200; rect.bottom=rect.top+tm.tmheight; dc.SetTextColor(RGB(255,0,0);CString str;str.LoadString(IDS_STRINGVC);dc.DrawText(str,rect,DT_LEFT); 1、什么是句柄句柄是一个4字节长的数值,用于标识应用程序中不同的对象和同类对象中不同的实例 2、什么是消息是描述事件发生的信息(如按下鼠标或键盘),而windows程序设计是针对事件或消息的处理进行。3、什么是设备的无关性,设备的无关性就是操作系统屏蔽了硬件设备的差异,因而设备无关性能使用户编程时无需考虑特殊的硬件设置4、图形设备按口(GDI)GDI负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文字, 是Windows系统的重要组成部分5、试描述PAINTSTRUCT数据结构定义Typedef struct tagPAINTSTRUCT HDC hdc;/设备环境句柄 BOOL fErase;/一般取真值,表示擦除无效矩形的背景 RECT rcPaint;/无效矩形标识 BOOL fRestore;/系统保留 BOOL fIncUpdate;/系统保留 BYTE rgbReserved16;/系统保留 PAINTSTRUCT;6、试描述获取设备环境的方法获取设备环境是应用程序输出图形的先决条件,常用的两种方法是调用函数BeginPaint或GetDC1) 调用BeginPaint函数 应用程序响应WM_PAINT消息进行图形刷新时,主要通过调用BeginPaint函数获取设备环境 hdc=BeginPaint(hwnd,&ps); /ps为PAINTSTRUCT类型结构定义方式为:PAINTSTRUCT ps; BeginPaint函数获取的设备环境要用EndPaint函数释放void EndPaint(HWND hwnd, PAINTSTRUCT &ps)2) 调用GetDC函数如果绘图工作并非由WM_PAINT消息驱动,则调用GetDC函数获取设备环境。hdc=GetDC(hwnd); 由GetDC函数获取的设备环境必须用ReleaseDC函数释放void ReleaseDC(HWND hwnd7、映像模式映像模式定义了将逻辑单位转化为设备的度量单位以及设备的x方向和y方向,程序员可在一个统一的逻辑坐标系中操作而不必考虑输出设备的坐标系情况8、如何创建一个系统给定的黑色画刷?:HBRUSH hBr; /hBr为画刷句柄 hBr=(HBRUSH)GetStockObject(BLACK_BRUSH)9、如何创建一个系统给定的黑色画笔?使用画笔之前必须事先定义一个画笔句柄。形式如下:HPEN hP;hP=GetStockObject(BLACK_PEN)10、什么是位图?位图是一种数字化的图形表示形式,位图中的每个像素点由位图文件中的一位或多位数据表示。整个位图的信息被细化为每个像素点的属性值(1) 面向对象程序设计的特点是什么?(2) 构造函数和析构函数有什么作用?(3) 什么叫拷贝构造函数?拷贝构造函数何时被调用?(4) 什么叫组合类?(5) 常用的常类型都有哪几种?试分别举例说明。(6) 什么叫可见性?可见性遵循的一般规则是什么?(7) 什么叫友元函数?什么叫友元类?1、应用程序通过句柄访问相应的对象信息,窗口句柄在程序中标记为 HWND应用程序通过句柄访问相应的对象信息,位图句柄程序中标记为HBITMAP。HICON图标句柄HFONT字体句柄HMENU菜单句柄HPEN画笔句柄1、有关类和对象的说法,下列不正确的是。A、对象是类的一个实例 B、任何一个对象只能属于一个具体的类C、一个类只能有一个对象 D、类与对象的关系和数据类型和变量的关系相似2下列关于构造函数的描述中错误的是 D A.构造函数可以设置默认参数;B.构造函数在定义类对象时自动执行 C.构造函数可以是内联函数;D.构造函数不可以重载3、定义析构函数时,应该注意( C ) A.其名与类名完全相同 B.返回类型是 void 类型 C.无形参,也不可重载 D.函数体中必须有 delete 语句4不是构造函数的特征。A、构造函数的函数名与类名相同 B、构造函数可以重载C、构造函数可以设置默认参数D、构造函数必须指定类型说明6、 对于结构中定义的成员,其隐含访问权限为( A )A.public B.protectedC.private D.static7、下述静态数据成员的特征中,是错误的。A、说明静态数据成员时,前面要加修饰府staticB、静态数据成员要在类体外进行初始化C、引用静态数据成员时,要在静态数据成员名加类名和作用域运算符D、静态数据成员不是所有对象所公有的8、类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么: A. 类C的继承方式只能采用public继承。 B. 可改用单继承的方式实现类C的同样功能。 C. 类A和类B至少有一个是抽象类。 D. 类A和类B至少有一个是虚基类。9、下列各函数中, 不是类的成员函数。A.构造函数B、析构函数C、友元函数D、拷贝初始化构造函数10、在C+中,用于实现编译时多态性的是A.内联函数B.重载函数C.模板函数D.虚函数11、有如下类声明:class Foo int bar; ;则Foo类的成员bar是 A.公有数据成员 B.公有成员函数 C.私有数据成员 D.私有成员函数12、关于C+与C语言的关系的描述中,下列哪项是错误的 ( D )A. C语言是C+的一个子集B. C语言与C+是兼容的C. C+对C语言进行了一些改进D. C+和C语言都是面向对象的13.由C+目标文件连接而成的可执行文件的缺省扩展名为 A. cpp B. exe C. obj D. lik14、在C+中,关于下列设置参数默认的描述中,下列哪项是正确的 A.不允许设置参数的默认值B.设置参数默认值只能在定义函数时设置C.设置参数默认值时,应该是先设置右边的再设置左边的D.设置参数默认值时,应该全部参数都设置15、下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用下列哪项合适 A.内联函数 B.重载函数C.递归调用D.嵌套调用16、下列定义中,哪项是定义指向数组的指针p A.int *p5 B.int (*p)5 C.(int *)p5 D.int *p 17、类

温馨提示

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

评论

0/150

提交评论