Windows程序设计课程复习题

合集下载

Windows程序设计题(含简答题答案)

Windows程序设计题(含简答题答案)

《Windows程序设计》模拟题一.单项选择题1、在VC++中,项目文件得扩展名就是(B)。

A)exeﻩﻩﻩﻩB)dspC)dswﻩﻩﻩD)cpp2、在MFC中,利用ClassWizard不能(D)。

A)建立新类ﻩﻩB)进行消息映射C)增加类得成员变量ﻩD)插入资源3、当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。

A)WM_CHARﻩﻩB)WM_HSCROLLC)W M_VSCROLLﻩﻩﻩD)WM_CHANGE4、更新菜单状态得消息就是(C )。

A)WM_MANDB)UPDATEC)UPDATE_MAND_UI D)INVALIDATE5、对于消息队列描述正确得就是(D)A)在Windows中只有一个消息系统,即系统消息队列。

消息队列就是一个系统定义得数据结构,用于临时存储消息。

B)系统可从消息队列将信息直接发给窗口。

另外,每个正在Windows下运行得应用程序都有自己得消息队列。

C)系统消息队列中得每个消息最终都要被USER模块传送到应用程序得消息队列中去。

应用程序得消息对列中存储了程序得所有窗口得全部消息.D)以上都正确6、在MFC中,所有得控件都就是(B)类得派生类,都可以作为一个特殊得窗口来处理。

A)CViewﻩﻩB)CWndC)C WindowﻩﻩﻩD)CDialog7、使用GetDC()获取得设备上下文在退出时,必须调用(A)释放设备上下文.A)ReleaseDC()ﻩﻩﻩB)delete()C)D eleteDC()ﻩﻩﻩD)Detach()8、希望菜单无效,应该用CCmdUI类得(A )成员函数。

ﻩﻩﻩB)SetRadioA)EnableﻩﻩﻩC)SetCheckﻩﻩﻩD)SetText9、希望菜单前出现一个“√",应该用CCmdUI类得(C)成员函数.A)Enable ﻩﻩﻩB)SetRadioC)SetCheckﻩﻩD)SetText10、下面(A)不就是MFC设备环境类CDC类得派生类.A)GDI ﻩﻩﻩﻩB)CPaintDCC)CClientDC ﻩﻩD)CWindowDC11、在MFC中,所有得文档类都派生于(C),所有得视图类都派生于(A )。

Windows程序设计复习文档

Windows程序设计复习文档

Windows程序设计一、单项选择10*2或20*1=20分二、填空(程序代码)10*1=10分三、程序设计代码填空8*2.5=20分四、基础应用程序设计题(共三小题,5+5+10=20分)五、今日上机内容:步骤,关键代码(记录、显示、查询、编辑、删除等)一、1、消息:mouse消息,键盘消息,按键消息VK_2、客户区/非客户区消息3、CDC、CPointDC、ClientDC4、Cwnd是诸空间关系5、区分SDI、MDI6、资源ID、资源文件*.rc,*.rc27、CPen、CBrush用法,画矩形,椭圆等8、对话框资源,字符串,快捷键,工具图标用法,菜单用法与编程(WM_COMMAND_?)9、一个工程中*.h,*.cpp,*.pc,*.dsp等格式含义10、一个工程中所有C....DC,C....View,C....APP,C....Frame的详细含义11、控件编程DDX_... AFX_... DFX_.... 函数的含义12、BitBlt与StretchBil区分13、CPropertrsheet与CPropertypage区分14、所有与数据库有关的类二,填空知识。

1.mouse 左右中,down,up,单击,双击等消息2.按字母键,vk_及其消息函数是什么?(大小写要区分)3.一个MFC APPWizard程序中几个基本类C....APP, C.....DOC, 等的含义。

4.建笔,建画刷,绘矩形,绘椭圆,建按钮控件的函数及其参数的含义。

5.preCrenteWindow(),OnCreate(),onDrawn()函数的比较。

三、程序设计代码填空1、按mouse左、中、右键弹出对话框或消息框(注:二者不同,的几行关系代码)2、按mouse或字母绘制矩形或椭圆(有可能用到CPen、CBrush)3、Invalidate()会……会调用哪个函数重绘窗口?4、把矩形、圆、椭圆数据没放在文档内的变量或数组中,在C....View中OnDraw(0中绘制图形(熟练!!!!)四,基础编程。

18级Windows程序设计复习题 AA

18级Windows程序设计复习题 AA

18级Windows程序设计复习题第3章习题一、填空题1、MFCAppWizard(exe)可以创建三种类型的应用程序,分别是:单文档、多文档、应用程序。

2、项目名为HELLO的单文档程序,MFC为用户创建了4个主要的类,分别是:CHELLOAPP、CHELLODOC、CHELLOview、CMainFrame。

二、选择题1、下面哪一项不是Windows应用程序的消息(D)A)窗口消息B)控件的通知消息C)命令消息D)状态栏消息2、MFC AppWizard创建的单文档程序,创建了4个主要的类,其中基类可以选择的类是(A )A)视类B)应用类C)主框架类D)文档类三、程序创建单文档,显示结果如下:········Void CMyView::OnDraw(CDC* pDC){CMyDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);pDC->SetTextColor ( );pDC->SetBkColor (RGB (0,0,255) );pDC->TextOut (100,100,”好好学习”);pDC->TextOut (150,120,”天天向上”);}第四章习题:一、填空1、类向导的 Message标签用于添加消息响应函数,MemberVariables 标签用于添加控件关联变量。

2、要显示一个模态对话框,应使用的函数是 DoModal() 。

3、要显示窗口,函数ShowWindow( SW_SHOW )中用什么参数值。

4、已知对话框类:ConeDlg, 要求打开对话框,语句序列是:dlg.DoModal() ; 。

二、选择题1、要将控件显示的值保存到关联变量中,应该执行(B)A)Invalidate(false) B) UpdateData(false)C) UpdateData( true) D) Invalidate(true)2、用户定义的对话框分为(B)两类。

windows编程复习题

windows编程复习题

一 、简答题: 1. Winsows 编程中窗口的含义是什么?(5 分) 答:在 Windows 中,一个窗口就是屏幕上的一个矩形区域,它接收用户的输入并以文字或图形的格式显示输出内 容。窗口是 Windows 应用程序基本的操作单元,是应用程序与用户之间交互的接口,也是系统管理应用程序的基 本单位。 2. Windows API 是什么?请你写出它的英文全称。 分) (5 答:Windows 的 API 是 Windows 操作系统的应用程序接口。 分) (3 Windows 的 API 的英文全称是 Windows Application Programming Interface.(2 分) 3. Windows 应用程序可以使用哪些资源?资源的主要作用有哪些?(5 分) 答:Windowss 应用程序可以使用:加速键,位图,光标,对话框,菜单,工具条,字符串等。在 Windows 的可 执行文件中,资源是独立于代码的,使用单独的 Resource Compiler 来进行编译,并嵌入到可执行文件中,在编 程过程中,代码是可复用的,通过资源的导入导出功能来实现资源的可复用。另外,程序的国际化,也是通过资源 来实现的。 4. 什么是句柄?句柄有哪些作用?(5 分) 答:句柄是一个 32 位无符号整数。它是 WINDOWS 用来标识被应用程序所建立或使用的对象的唯一整数, WINDOWS 使用各种各样的句柄标识诸如应用程序实例,窗口,菜单,位图,GDI 对象等。常用的句柄类型有: HINSTANCE (运行实例句柄)、 HWND (窗口句柄) HMENU(菜单句柄) 、 、HBITMAP(位图句柄) 、HPEN (画笔句柄) 、HBRUSH(画刷句柄)等。 通过句柄可以获得相应的对象信息。在 Windows 中,句柄(Handle)并非对象的指针,它是系统内部表的 索引值。这样能避免应用程序直接与对象的内存地址打交道。 5. 什么是图形设备接口 GDI?(5 分) 答:Windows 图形设备接口(GDI)的英文全称是 Graphics Device Interface,是为与设备无关的图形设计的, GDI 处于设备驱动程序的上一层, Windows 的重要组成部分。 是 它负责管理用户绘图操作时功能的转换。 Windows 通过 GDI 函数为应用程序提供服务。用户通过调用 GDI 函数绘制不同尺寸、颜色、风格的几何图形、文本和位图。 GDI 通过不同设备提供的驱动程序将绘图语句转换为对应的绘图指令, 避免了应用程序直接对硬件进行操作, 从而 实现所谓的设备无关性。 6. Winsows 编程中 MFC 表示什么?请你写出它的英文全称。 分) (5 答:Winsows 编程中 MFC 表示微软基础类库,它的英文全称是 Microsoft Foundation Class. 7. 什么是一个 Visual C++ Project(项目或者译为工程)?(5 分) 答:在 Visual C++ IDE 中,把实现程序设计功能的一组相互关联的 C++源文件、资源文件以及支撑这些文件的 类的集合称为一个项目。Visual C++ IDE 以项目作为程序开发的基本单位,项目用于管理组成应用程序的所有元 素,并由它生成应用程序。 项目用项目文件 DSP(Developer Studio Project)来描述,文件名后缀为.dsp。项目文件保存了项目中所用到的 源代码文件和资源文件的信息,如文件名和路径。同时,项目文件还保存了项目的编译设置等信息,如调试版 (Debug)或发布版(Release) 。 8. 何谓应用程序框架?(5 分) 答: 同一类型应用程序的结构大致相同, 并有很多相同的源代码, 因此可以通过一个应用程序框架 AFX (Application FrameWorks)编写同一类型应用程序的通用源代码。 MFC 应用程序框架将那些每个应用程序都共同需要使用的代码封装起来,如完成默认的程序初始化功能、建立应 用程序界面和处理基本的 Windows 消息,使程序员不必做这些重复的工作,把精力放在实质性代码的编写上。 9. 在开发 Windows 应用程序时使用 Device Context(设备环境或者译为设备上下文)有什么好处?(5 分) 答:设备环境(Device Context 设备上下文)是设备无关的,是设备的抽象。通过使用设备环境(Device Context 设备上下文) ,程序员在编程时不用关心设备的类型。 分) (2 图形在不同的设备上输出都需要经过转换,由于有了设备环境(Device Context 设备上下文) ,这个具体转换过 程由操作系统去实现, 这样就大大地降低了应用程序设计的复杂性,提高了应用程序的通用性和应用程序开发的 效率。 分) (3 10. Windows 系统提供的标准控件有哪些?(5 分) 答:静态控件,按钮控件,编辑框控件,列表框控件,组合框控件,滚动条控件。 二、简要回答下列问题: 1. 请你简要描述 Windows 程序的事件驱动程序模型。 (10 分)

Windows程序设计考试复习

Windows程序设计考试复习

Windows程序设计考试复习第一章基础知识 ;第二章 C++基础知识UINT unsigned int;如果一个类中含有纯虚函数,则该类称为[抽象类];静态成员运行时多态,通过虚函数;编译时多态:?运算符重载和函数重载第二章Windows应用程序句柄:HWND 窗口句柄HINSTANCE 当前实例句柄HDC设备环境句柄HFONT 标示字体句柄HPEN HBRUSH HBITMAP HICON HMENU HFILE HCURSORWindows应用程序利用Message和其他的应用程序及系统进行信息交换;Windows应用程序是消息或者事件驱动的消息由三部分组成:消息号(UINT),字参数(wParam),长字参数(lParam);消息结构体 MSG消息宏前缀 BM按钮控件消息 WWM窗口消息WM_LBUTTONDOWN 单击鼠标左键时产生该消息wParam标识鼠标键的单击状态 MK_L/M/RBUTTONlParam包含当前光标的y,x坐标(高字,低字)WM_KEYDOWN 按下一个非系统键时产生的消息WM_KEYUP…WM_CHAR 也是按下非系统键时产生的消息wParam为按键的ASCII码WM_CREATE此消息由CreateWindow函数发出WM_CLOSEWM_DESTROY由DestroyWindow函数发出WM_QUIT由PostQuitMessage函数发出,wParam含有退出代码WinMain函数,所以Window应用程序的入口点LoadIcon()LoadCursor()注册窗口类BoolRegisterClassEx(&wndclassex) //wndclassex为窗口类结构创建窗口CreateWindow()窗口样式WS_OVERLAPPEDWINDOW 创建一带边框,标题栏,系统菜单,最大,最小化按钮的窗口显示窗口ShowWindow(HWND hwnd,intncmdShow)SW_SHOW…UpdateWindow(HWND hwnd) //更新并绘制用户区,并发出WM_PAINT消息消息循环GetMessage(lpMSG.hwnd,0,0) //从消息队列中获取一条消息,并将消息放到一个MSG结构体中//指向MSG结构体的指针 //0,0 不过滤消息TranslateMessage(lpMSG) //将消息的虚拟键转换为字符信息;DispatchMessage(lpMSG) //将lpMSG指向的消息传送到指定的窗口函数While(GetMessage(&MSG,NULL,0,0)) //当GetMessage返回值为 0,即检索到WM_QUIT消息,结束循环并退出{TranslateMessage(&MSG);DispatchMessage(&MSG);}窗口函数处理接收到的消息的函数LRESULT CALLBACK WndProc(HWND hwnd,UINTmessage,WPARAMwParam,LPARAMlParam) {switch(message) //message标示消息的消息值{case…break;case WM_DESTROY: //关闭窗口PostQuitMessage(0); //intnExitCode,应用程序退出代码 //向应用程序发出WM_QUIT消息default://系统默认处理过程return DefWindowProc(hwnd,message,wParam,lParam);//为未定义处理过程的消息提供默认处理}return 0;}数据类型UINT,DWORD(32位无符号整数)LONG 32位有符号整数LPTSTR,LPCTSTR指向32位字符串,字符串常量的32位指针(用于unicode)数据结构MSG 包含一个消息的全部信息WNDCLASSEX 包含一个窗口类的全部信息POINT 定义屏幕/窗口的一个点(x,y)RECT 定义一个矩形区域左上角坐标(x,y),右下角坐标(x,y)第三章Windows图形设备接口及Windows绘图Windows图形设备接口GDI 是为与设备无关的图形设计的设备描述表(DC) 4类:显示,打印,存储,消息获取设备环境的方法:响应WM_PAINT消息进行图形刷新:hdc=BeginPaint(hwnd,&ps) //ps为PAINTSTRUCT类型结构BOOL EndPaint(HWND hwnd,PAINTSTRUCT&ps); //释放设备环境非WM_PAINT消息驱动hdc=GetDC(hwnd);intReleaseDC(HWND hwnd,HDChdc)GetDCEX映射模式定义了逻辑单位转化为设备的度量单位及设备的x,y方向MM_ANISOTROPIC,MM_ISOTROPIC(x,y轴单位比例 1:1)一个逻辑单位的映射由SetWindowExtEx/SetViewportExtEx函数确定MM_TEXT 一个逻辑单位映射为一个像素坐标系设定:x向右,y向下 (默认映射模式)映射模式设定SetMapMode(hdc,nMapMode); //nMapMode为映射模式获取设备环境的映射模式nMapMode=GetMapMode(hdc)窗口区域的定义由SetWindowExtEx函数完成视口区域的定义由SetViewportExtEx函数完成视口,窗口的原点默认均为(0,0)可通过SetWindowOrgExSetViewportOrgEx设定(只在MM_ANISOTROPIC, MM_ISOTROPIC 映射模式下才有意义)获取用户区的尺寸GetWindowRectGetClientRect画笔画笔的操作1.创建画笔HPEN hp=(HPEN)GetStockObjec t(BLACK_PEN);//定义一个画笔句柄//直接调用GetStockObject获取Windows系统定义的4种画笔WHITE,BLACK,DC,NULL_PEN自定义画笔hp=CreatePen(intnPenStyle,//PS_DASH ,PS_SOLID,PS_DOT…intnWidth, //画笔宽度,取0标示一个像素宽COLORREF rgbColor);2.将画笔选入设备环境hPenOld=SelectObject(hdc,hp);3.删除画笔SelectObject(hdc,hPenOld); //恢复原来系统的画笔DeleteObject(h p)HBRUSH类似常用绘图函数:1设置画笔当前位置BOOL MoveToEx(HDC hdc,intx,int y, //新位置的逻辑坐标LPPOINT lpPoint//存放元画笔位置的POINT结构地址);2 从当前位置向指定坐标点画直线LineToBOOL LineTo(HDC hdc,intX,int Y) //x,y为线段的终点坐标3 从当前位置开始,依次用线段连接lpPoints中指定的各点的Polyline 如果绘制多边形,起点与终点的坐标应该相同BOOL Polyline(HDC hdc,LPPOINT lpPoints, //指向包含各点坐标的POINT结构数组的指针intnCount//POINT数组中点的个数)4 绘制椭圆的函数(曲线)BOOL Arc(HDC hdc,int x1,int y1, //边框矩形左上角逻辑坐标int x2,int y2, //边框矩形右下角逻辑坐标int x3,int y3,//椭圆弧起始径线的确定点坐标int x4,int y4//椭圆弧终止径线的确定点坐标);//弧由起点向终点逆时针方向画出(x3,y3)(x4,y4)不一定在椭圆上,只起到角度定位的作用5 绘制饼图(填充区域)BOOL Pie(HDC hdc,int x1,int y1, //边框矩形左上角逻辑坐标int x2,int y2, //边框矩形右下角逻辑坐标int x3,int y3, //椭圆弧起始径线的确定点坐标int x4,int y4 //椭圆弧终止径线的确定点坐标);6 使用当前画笔绘制一个矩形,并使用当前画刷进行填充Rectangle(HDC hdc,int x1,int y1, //左上角int x2,int y2 //右下角);7 圆角矩形BOOL RoundRect(HDC hdc,int x1,int y1, //左上角int x2,int y2 //右下角intnWidth, //圆角宽度intnHeight//圆角高度);8 椭圆BOOL Ellipse(HDC hdc,int x1,y1, //(x1,y1)边界左上角的逻辑坐标int x2,y2 //(x2,y2)边界右下角的逻辑坐标);9 绘制多边形BOOL Polygon(HDC hdc,LPPOINT lpPoints,intnCount//多边形点的个数)第四章文本的输出方法和字体的设置DEFAULT_GUI 当前GUI的默认字体SYSTEM //默认字体ANSI_FIXED //ANSI标准的固定宽度的字体1 定义字体句柄变量 HFONT hF;2 调用GetStockObject()获得系统字体句柄hF=GetStockObject();3 调用SelectObject()将字体选入设备环境SelectObject(hdc,hF);创建自定义字体CreateFont()设置字体颜色SetTextColor(hdc,crColor);设置背景颜色SetBKColor(hdc,crColor);文本的输出过程1 获取字体信息GetTextMetrics(hdc,&tm);//tm为TEXTMETRIC结构tmHeight; //字符高度tmExternalLeading; //行与行之间的间隔2 格式化文本2.1 确定后续文本的坐标获取当前字符串的宽度,GetTextExtentPoint32 2.2 换行时确定下一行文本的坐标。

第8章 Windows应用程序设计 习题

第8章  Windows应用程序设计 习题

第8章Windows应用程序设计一.选择题1.要使窗体在运行时,显示在屏幕的中央,应设置窗体的【】属性。

A) WindowState B) StartPositionC) CenterScreen D) CenterParent2.在C#程序中,文本框控件的【】属性用来设置其是否是只读的。

A) ReadOnly B) Locked C) Lock D) Style3.要使文本框控件能够显示多行且能自动换行,应设置它的【】属性。

A) MaxLength和Multiline B) Multiline和WordWrapC) PasswordChar和Multiline D) MaxLength和WordWrap4.在使用RichTextBox控件进行文档编辑时,如果希望知道文档自上次设置该控件的内容后,文本框中的内容是否改变,可使用它的【】属性。

A) Modified B) SelectedText C) Undo D) SaveFile5.当用户单击窗体上的命令按钮时,会引发命令按钮的【】事件。

A) Click B) Leave C) Move D) Enter6.要使复选框控件能够显示出三种状态,应首先设置它的【】属性。

A) ThreeState B) Checked C) CheckState D) Indeterminate 7.在Windows应用程序中,如果复选框控件的Checked属性值设置为True,表示【】。

A) 该复选框被选中B) 该复选框不被选中C) 不显示该复选框的文本信息D) 显示该复选框的文本信息8.在Windows应用程序中,可以通过以下【】方法使一个窗体成为MDI窗体。

A) 改变窗体的标题信息B) 在工程的选项中设置其为启动窗体C) 设置窗体的IsMdiContainer属性为True D) 设置窗体的ImeMode属性9.在Windows应用程序中,若要让窗体MyForm显示为对话框模式窗体,必须【】。

Windows程序设计课程复习题

Windows程序设计课程复习题

Windows程序设计复习题一选择题1 下列程序设计方法中,()是一种基于对象的程序设计方法。

A: MFC程序设计B: 使用WindowsAPI编程C: 使用VisualBasic语言编程 D: 使用C#程序设计语言编程2 MFC程序框架中,最先执行的函数是()。

A: WinMain函数B: CWinApp类的构造函数C: CWinApp类的InitInstance函数D: Cwnd的OnCreate函数3 CWinApp类中用()成员函数实现了对消息环的封装。

A: InitInstance( ) B: Run()C: OnIdle() D: WndProc()4 消息的4个参数中,表示消息类型的参数是()。

A: HWND hwnd B: messageID C: wParam D: lParam5下列各消息中,与程序的菜单命令、工具栏按钮或对话框按钮相对应的消息是()。

A: WM_CHAR B: WM_COMMAND C: WM_CREATE D: WM_PAINT6 MFC消息映射机制中,下列消息映射表BEGIN_MESSAGE_MAP(CGraphicsView, CScrollView)ON_WM_PAINT()END_MESSAGE_MAP()把WM_PAINT消息映射到()。

A: CGraphicsView类OnPaint函数B: CGraphicsView类OnDraw函数。

C: CScrollView类的OnPaint函数D: CScrollView类的OnDraw成员函数。

7 下列MFC类中,不直接支持消息映射的MFC基类是(),A: CCmdTarget B: CWinAPP C: CWnd D: CMap8 下列集合类中,其内部是使用散列表技术实现的MFC类的是()。

A: CArray B: CList C: CMap D: CPtrList9 下列CWnd类成员函数中,用于任何消息的可覆盖函数是()。

Windows程序设计复习资料(完整答案)

Windows程序设计复习资料(完整答案)

一、单项选择题:1.WinMain()函数的工作。

WinMain()函数是Windows程序的入口点在WinMain中进行:注册窗体类、建立窗体、显示窗体、更新窗体、建立消息循环2.非MFC的Windows程序中,不是处理WM_PAINT消息的时候怎样获得客户区的设备环境句柄。

BeginPaint ----------EndPaintGetDC---------------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消息时返回010.Windows中,应用程序的输出是怎样进行的。

通过设备描述表DC(Device Context)来进行应用程序与物理设备之间的交互11.MFC中,大多数类的基类都是什么。

CObject类12.一个MFC应用程序必须有且只能有一个从哪个类派生的全局应用程序对象,此对象在运行时刻控制应用程序中所有其他对象的活动。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Windows程序设计复习题一选择题1 下列程序设计方法中,()是一种基于对象的程序设计方法。

A: MFC程序设计B: 使用WindowsAPI编程C: 使用VisualBasic语言编程 D: 使用C#程序设计语言编程2 MFC程序框架中,最先执行的函数是()。

A: WinMain函数B: CWinApp类的构造函数C: CWinApp类的InitInstance函数D: Cwnd的OnCreate函数3 CWinApp类中用()成员函数实现了对消息环的封装。

A: InitInstance( ) B: Run()C: OnIdle() D: WndProc()4 消息的4个参数中,表示消息类型的参数是()。

A: HWND hwnd B: messageID C: wParam D: lParam5下列各消息中,与程序的菜单命令、工具栏按钮或对话框按钮相对应的消息是()。

A: WM_CHAR B: WM_COMMAND C: WM_CREATE D: WM_PAINT6 MFC消息映射机制中,下列消息映射表BEGIN_MESSAGE_MAP(CGraphicsView, CScrollView)ON_WM_PAINT()END_MESSAGE_MAP()把WM_PAINT消息映射到()。

A: CGraphicsView类OnPaint函数B: CGraphicsView类OnDraw函数。

C: CScrollView类的OnPaint函数D: CScrollView类的OnDraw成员函数。

7 下列MFC类中,不直接支持消息映射的MFC基类是(),A: CCmdTarget B: CWinAPP C: CWnd D: CMap8 下列集合类中,其内部是使用散列表技术实现的MFC类的是()。

A: CArray B: CList C: CMap D: CPtrList9 下列CWnd类成员函数中,用于任何消息的可覆盖函数是()。

A: OnCommand B: OnNotifyt C: OnUpdate D: WindowProc10 Windows程序中,用于表示通用字符的数据类型是()。

A: char B: unsigned short C: TCHAR D: unsigned char11 下列数据类型中,表示设备上下文句柄的数据类型是()。

A: HWND B: HDC C: HMENU D: HPEN12 下列各个窗口类中,表示各种视图类的基类的MFC类是()。

A: CScrollView B: CTextView C: CRichEditView D: CView13 下列各种窗口对象中,对象最好在栈(Stack)中分配MFC窗口类是()。

A: CToolBar B: CView C: CWnd D: CFrameWnd14下列各宏命令中,应该放在类实现中以支持序列化特性的宏命令是()。

A: IMPLEMENT_DYNAMIC(class_Name)B: IMPLEMENT_DYNCREATE(class_Name)C: IMPLEMENT_SERIAL(class_Name)D: IMPLEMENT_MESSAGE_MAP()15 CRuntimeClass类的操作中,用于从类名字符串获得该类CRunTimeClass对象指针的方法为()。

A: IsDerivedFrom B: FromName C: CreateObject D: GetBaseClass16 各种设备描述表的中,可以使用CreateComPatibleDC函数创建获得的设备描述表类型是()。

A: 显示设备描述表B: 打印设备描述表C: 内存设备描述表D: 信息设备描述表17 CDC类成员函数中,可用于绘制圆角矩形的成员函数是()。

A: LineTo(int x,int y)B: PolyBezierTo( const POINT* lpPoints, int nCount );C: BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop );D: BOOL RoundRect( LPCRECT lpRect, POINT point );18 下列映射模式中,以0.01mm为逻辑单位的映射模式为()。

A: MM_LOMETRIC B: MM_HIMETRICC: MM_LOENGLISH D: MM_HIENGLISH19 下列GDI对象中,用于绘制图形内部区域的GDI对象为()A: 画笔B: 画刷C: 字体D: 区域E: 位图F: 调色板20 MFC文档视图框架中,用于规范程序、文档与视图对象之间的对象类是()类。

A: CWinApp B: CDocument C: CView D: CDocTemplate二简答题1 CObject类的三个特性运行时类信息:在运行时确定一个对象是否是一个类或其派生类的实例, CObject成员函数IsKindOf实现这个功能。

动态创建:CRuntimeClass类成员函数CreateObject实现这个功能。

序列化:把对象存入文件或从文件中读取对象内容的过程。

用户类通过覆盖Serialize()函数已实现这个功能。

2 简述设计一个支持可序列化类的设计方法?序列化:把对象存入文件或从文件中读取对象内容的过程。

设计可序列化的类的方法:1 定义该类时,使用CObject类或其派生类作为基类2 使用DECLARE_SERIAL(CLASSNMAE) 宏;3 定义默认构造函数;4 在类实现中使用IMPLEMENT_SERIAL(CLASSNAME,BASECLASS)宏;5 覆盖Serialize成员函数3 简述程序设计中为一个窗口创建子窗口的一般步骤和方法。

为一个窗口创建子窗口的一般步骤1 选择一个合适的窗口类作为基类(CWnd类或其派生类),定义一个窗口类2 以堆方式在窗口类中添加一个或若干个子窗口类型的成员变量。

3 重载OnCreate成员函数,在成员函数中调用这些子窗口对象的Create方法,创建子窗口对象。

4 建立子窗口与父窗口之间的消息映射。

4 简述MFC中有哪些设备描述表类,它们各有哪些特点。

MFC中定义了如下设备描述表类CDC:各种设备描述表类的基类,封装了设备描述表的属性和方法,提供了一个重要的访问图形设备的接口。

CWindowsDC:窗口区域设备描述表类。

CClientDC:客户区设备描述表类。

CPaintDC:重绘区域设备描述表类。

CMetaFileDC:图元文件设备描述表类。

5简述Windows消息的类型有哪些?各有何特点?窗口消息:窗口事件引发的消息。

如WM_PAINT。

控件通知消息:控件状态改变引发的消息。

命令消息:与一个用户界面对象相联系的消息。

菜单项、命令按钮和快捷键。

自定义消息:用户自定义的消息。

6简述序列化的概念和设计支持序列化类的方法。

序列化:把对象存入文件或从文件中读取对象内容的过程。

设计可序列化的类的方法:1 定义该类时,使用CObject类或其派生类作为基类2 使用DECLARE_SERIAL(CLASSNMAE) 宏;3 定义默认构造函数;4 在类实现中使用IMPLEMENT_SERIAL(CLASSNAME,BASECLASS)宏;5 覆盖Serialize成员函数7 简述设备描述表的概念和主要类型。

设备描述表(Device Context)是一种Windows数据结构,用来描述绘制窗口所需要的信息。

设备描述表主要有如下类型Display显示设备描述表,提供对视频显示设备上的绘制操作的支持Printer打印设备描述表,提供对打印机、绘图仪设备上的绘制操作的支持Memory内存设备描述表,提供对位图操作的支持Information信息设备描述表,提供对操作设备信息获取的支持8 简述GDI的基本概念,简述设备描述表中有哪些GDI对象,这些对象用哪些MFC类表示。

图形设备接口(GDI:Graphics Device Interface):为程序员提供了一个设备无关的设备接口。

Gdi对象分类画笔:绘制线和图形的边框。

画刷:绘制一个图形的内部区域。

字体:定义字体区域:设备上的一个区域,可用于定义裁剪区域等操作位图:一个由颜色位组成的数组,用于表示一个图形调色板:一个颜色列表,用于建立逻辑颜色到设备颜色的映射。

9 简述延迟再现技术的基本概念和与延迟再现技术相关的消息。

延迟再现技术:当向剪贴板传送数据中,并不直接将数据的这份副本传给剪贴板,而是直到有另一个程序需要数据时,程序才提供这份数据。

延迟提出技术的三个消息WM_RENDERFORMA T:当有程序调用GetClipboardData要从剪贴板取数据时,发送的消息,wParam是所要求的数据格式。

WM_DESTROYCLIPBOARD:当有程序调用EmptyClipboard时发送的消息,通知不再需要构造剪贴板数据信息。

WM_RENDERALLFORMA TS :剪贴板拥有者程序要终止执行时将收到的消息。

三程序设计已知:一个用于表示多边形的C++类CPolygon定义如下:class CPolygon{private:CPoint *pPoint;int nCount;int nLineStyle, nWidth;COLOREF crLineColor, crFaceColor;public:CPolygon (CPoint *point,int nCount,int LineStyle, int Width,COLOREF LineColor, COLOREF FaceColor);~ CPolygon (void);};类实现部分CPolygon::CPolygon(CPoint *point,int nCount,int LineStyle, int Width,COLOREF linecolor, COLOREF facecolor){nCount=count;if(nCount>0){pPoint=new CPoint[nCount];for(int i=0;i<nCount;i++)pPoint[i]=point[i];}nLineStyle=LineStyle,nWidth=Width,crLineColor=linecolor,crFaceColor=facecolor;}CPolygon::~ CPolygon (void){if(pPoint) delete pPoint;}1请为其添加必要的成分,使其支持序列化。

相关文档
最新文档