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

上传人:gu****n 文档编号:107935469 上传时间:2022-06-15 格式:DOC 页数:17 大小:153KB
返回 下载 相关 举报
Windows程序设计题(含简答题答案)_第1页
第1页 / 共17页
Windows程序设计题(含简答题答案)_第2页
第2页 / 共17页
Windows程序设计题(含简答题答案)_第3页
第3页 / 共17页
点击查看更多>>
资源描述
Windows程序设计模拟题一 单项选择题1. 在VC+中,项目文件的扩展名是(B)。A)exeB)dspC) dswD)cpp2. 在MFC中,利用ClassWizard不能(D )。A)建立新类B)进行消息映射C) 增加类的成员变量D)插入资源3. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。A)WM_CHARB)WM_HSCROLLC) WM_VSCROLLD)WM_CHANGE4. 更新菜单状态的消息是( C )。A)WM_COMMAND B)UPDATEC)UPDATE_COMMAND_UI D)INVALIDATE5. 对于消息队列描述正确的是( D )A)在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程序都有自己的消息队列。C)系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。应用程序的消息对列中存储了程序的所有窗口的全部消息。D)以上都正确6. 在MFC中,所有的控件都是(B )类的派生类,都可以作为一个特殊的窗口来处理。A)CView B)CWndC) CWindow D)CDialog7. 使用GetDC()获取的设备上下文在退出时,必须调用(A )释放设备上下文。A)ReleaseDC()B)delete()C) DeleteDC() D)Detach()8. 希望菜单无效,应该用CCmdUI类的(A )成员函数。A)Enable B)SetRadioC) SetCheckD)SetText9. 希望菜单前出现一个“”,应该用CCmdUI类的(C)成员函数。A)Enable B)SetRadioC)SetCheckD)SetText10. 下面(A)不是MFC设备环境类CDC类的派生类。A)GDIB)CPaintDCC) CClientDCD)CWindowDC11. 在MFC中,所有的文档类都派生于(C ),所有的视图类都派生于(A )。A)CView B)CWindow C)CDocument D)CFormView12. 采用C+进行绘图时,(B )用于指定图形的填充样式,(A )用于指定图形的边框样式。A)画笔 B)画刷 C)区域 D)位图13. (C )包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息。A)系统消息 B)用户消息C) 输入消息 D)控制消息14项目文件的扩展名是(B)。 A)exe B)dsp C)dsw D)cpp15. 在MFC中,文档负责将数据存储到永久存储介质中,通常是磁盘文件或数据库,存取过程称为(B)。 A)文件访问 B)串行化 C)文件读写 D)格式化16. 在VC+ 6.0在编程环境中,运行程序的快捷键是(A)。A)Ctrl+F5B)F7 C)Ctrl+F7D)F517. 在VC+ 6.0在编程环境中,设置和取消断点的快捷键都是(A)。A)F9B)F5 C)F11D)F1018. 在MFC中,在编辑某菜单项时,若要指明该菜单项是一个弹出式子菜单,必须选择属性对话框中的(B)。A)SeparatorB)Pop-up C)InactiveD)Grayed19. 使用GetWindowDC( )和GetDC( )获取的设备上下文在退出时,必须调用(C)释放设备上下文。 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)包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息;(D)用来与Windows的控制对象,如列表框、按钮、复选框等进行双向通信。当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。A)系统消息 B)用户消息 C)输入消息 D)控制消息23.生成1个只具有确定和取消按钮的消息框,其参数为( C )。A)MB_OK B)MB_YESNO C)MB_OKCANCEL D)MB_RETRYCANCEL24. 在Windows程序设计中如果加入了滚动条。设置滚动条的范围使用(C)函数,设置滚动条的位置使用(E)函数,获得滚动块的当前位置使用(F )函数。A)SetPos() B)SetRange()C)SetScrollRange() D)GetPos()E)SetScrollPos() F)GetScrollPos()G)GetScrollRange()25. 消息循环的处理过程如下: (A)函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后,(B)把来自键盘的命令翻译成WM_XXX消息命令形式。(E)函数通知Windows把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。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)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.下列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)程序正常运行,窗口标题变为NULL35.典型的Windows窗口程序的流程为:( A )A)注册窗口类-创建窗口-显示窗口-更新窗口-消息循环B)创建窗口-注册窗口类-显示窗口-更新窗口-消息循环C)创建窗口-注册窗口类-显示窗口-更新窗口-消息循环D)注册窗口类-创建窗口-更新窗口-显示窗口-消息循环36.菜单编辑器中,如果要设置某个项为分隔线,那么这个项的哪个属性为true。( D )A)Visible B)Grayed C)Enable D)Separator37.在Windows消息机制中,菜单消息类型是:( B )A)WM_PAINT B)WM_COMMAND C)WM_CREATE D)WM_CLOSE38.在Windows编程中,代表键盘的键的虚拟键值是( A )。A)VK_UP B)WM_KEYDOWN C)WM_KEYUP D)VK_DOWN39.在Windows编程中,响应键盘按键按下消息的Windows消息是( B )。A)VK_UP B)WM_KEYDOWN C)WM_KEYUP D)VK_DOWN40.在Windows编程中,按下键盘的A键后,返回的Windows消息是( B )。A)VK_A B)WM_KEYDOWN C)A D)DIK_A41.在Windows编程中,按下鼠标左键产生的Windows消息是( B )。A)WM_KEYDOWN B)WM_LBUTTONDOWN C)WM_LEFT D)WM_RBUTTONDOWN42.下列哪个缩写是微软提供的C+语言的帮助库?( B )A)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轴正方向为竖直朝上C)左下角为原点,x轴正方向为水平向右,y轴正方向为竖直朝下D)左上角为原点,x轴正方向为水平向右,y轴正方向为竖直向下45.以下选项中,GDI不能支持的是:( B )A)位图 B)Flash动画C)直线和曲线 D)文字46.设备环境DC的全称为:( B )A)Device Content B)Device ContextsC)Device Config D)Device Conter47.InvalidateRect的作用是 ( B )A)删除一个矩形 B)使一个矩行区域变为无效,从而可以重绘C)使一个矩形区域变为无效,从而释放部分GDI资源D)擦除一个矩形区域48.已知窗口为缺省状态,有如下代码: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(hDC,100,100);则这段代码的执行效果是( A )。A)从窗口的左上角至坐标(100,100)绘制1条直线B)没有绘制任何图形C)从窗口的任意一点开始至坐标(100,100)绘制1条直线D)从鼠标在窗口的位置至坐标(100,100)绘制一条直线50.以下函数中不受画刷影响的函数是:( C )A)Rectangle B)Ellipse C)LineTo D)Polygon51.如果要创建一个宋体字体,那么字体描述中哪个属性为“宋体”?( C )A)lfCharSet B)lfQuality C)lfFaceName D)lfStrikeOut52.在Windows编程约定中,位图句柄为( B )。A)HGDI B)HBITMAPC)HDC D)HPEN53.下面哪个步骤能实现透明贴图(模板位图为单色的1位位图)?( A )A)位图和背景像素作异或操作-使用模板位图作与操作-原位图与背景作异或操作B)使用模板位图作与操作-原位图与背景作异或操作-位图和背景像素作异或操作C)位图和背景像素作异或操作-原位图与背景作异或操作-使用模板位图作与操作D)位图与背景作异或操作-位图和背景像素作异或操作-使用模板位图作与操作54.在BitBlt函数中进行光栅化处理方式中,哪1个值说明是要进行或运算?( D )A)SRCAND B)SRCCOPY C)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_PAINT消息?( ABCD )A)窗口最初创建时B)窗口移动后部分区域由不可见变为可见C)窗口大小改变后D)滚动条滚动后3在注册窗口类中,不需要进行的操作是( BC )。A)载入图标 B)确定窗口大小C)确定窗口标题 D)确定窗口类名称4.关于PeekMessage和GetMessage的说法正确的是( AB )A)PeekMessage立即返回B)GetMessage将会等待消息到来C)PeekMessage等待消息到来D)GetMessage立即返回5.关于动态菜单,以下说法正确的是( BD )。A)函数LoadMenu可以弹出菜单B)函数CreatMenu用于建立空菜单C)函数DeleteMenu用于删除整个菜单D)函数InsertMenu用于在菜单中插入1个菜单项6.以下关于Windows的鼠标消息,说法正确的是( BD )。A)鼠标的按键消息种类可以从wParam中得到B)鼠标的按键消息种类可以从message中得到C)鼠标的位置信息可以从wParam中得到D)鼠标的位置信息可以从lParam中得到7.已知语句SetTimer(NULL,1,100,NULL),则以下说法正确的是( AD )。A)设置了一个定时器,该定时器不能正常起作用 B)设置一个定时器,能够正常起作用 C)设置了一个定时器,时间间隔为1秒 D)设置了一个定时器,时间间隔为100毫秒8.下列选项中属于Windows GDI资源的是( ABC )。A)位图 B)画笔 C)字体 D)窗口9.能用于绘制直线的函数为:( AB )A)LineTo B)Polyline 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下列哪种情况下系统可能向窗口发送WM_PAINT消息?( BCD )A)窗口最初创建时B)窗口移动后部分区域由不可见变为可见C)窗口大小改变后D)滚动条滚动后14匈牙利表示法的变量一般分为哪几个部分?(ABC)A)属性(例如g_) B)类型C)描述 D)后缀15下列选项中,可以用Windows句柄标识的有( ABD )。A)窗口 B)文件 C)消息 D)字体16关于Windows句柄,下列说法正确的是( AD )。A)每个运行着的Windows程序都有对应的Windows实例句柄B)同1个Windows程序打开多次时,对应同1个实例句柄C)1个Windows实例句柄只能对应1个窗口句柄D)1个Windows实例句柄可以对应多个窗口句柄三、名词解释1、事件:可能触发计算机程序做出相应反应的刺激2、句柄:为了区别于普通变量的标识,Windows把这种复杂对象的标识叫做句柄3、消息:为了描述事件的各种信息(例如,何时何地发生了何种事件等),Windows定义了一个结构,这个结构就叫做”消息”4、Windows的API函数:由操作系统提供的,用户可以使用的函数就叫做API5、Windows SDK程序:使用软件开发工具包开发出来的Windows应用程序6、资源:资源就是一种可供Windows应用程序利用,可单独编辑,并可动态加载的数据7、图象设备接口(GDI):Windows把用于改变DC属性的操作,即与绘图相关的操作都制作成函数,这些函数的集合就叫做图形设备接口8、CDC类:在面向对象程序设计思想中,把DC和GDI函数封装到一起形成CDC类9、回调函数:系统调用用户编写的函数过程叫做“回调”,所以这种被系统调用的函数也叫做“回调函数”10、无效显示区:在有效提高拆分窗口显示更新效率的方法中,程序只重绘必须重绘的区域11、控件:Windows设计了一些具有图形外观的程序实体,这些程序实体在鼠标或键盘的作用下会使程序出现不同的响应,这些可以接收或者产生事件的程序实体就叫做控件12、类信息表:MFC程序在不同的场合下还经常用到类的其他信息,于是MFC就把这些信息统统都放在映射表项中,并把它叫做类消息表13、消息循环:while(GetMessage(&msg,NULL,NULL,NULL)TranslateMessage(&msg);DispatchMessage(&msg);四填空题1、 在MFC中,用户可以通过项目工作区窗口的ResourceView视图来查看资源。2、 一个单文档的MFC应用程序框架一般包括5个类:应用程序类、框架窗口类、视图类、文档类和文档模板类。3、 Windows是一个基于消息的消息驱动系统。4、 项目工作区文件的扩展名是dsw。5、 MessageBox函数弹出一个小的对话框向用户显示短信息,并将用户最终的选择返回给调用者。 6、 在通常情况下,视图派生类的成员函数中通过调用GetDocument函数得到当前文档对象的指针。7、 Windows程序中的消息有窗口消息、命令消息和控件通知消息三种类型。8、 MFC中的集合类包括数组、列表(链表)、映射(顺序可变)。9、 在进行绘图时,画刷用于指定图形的填充样式,画笔用于指定图形的边框样式。10、 用户按下键盘按键并放开的过程中,将产生至少三条消息:WM_KEYDOWN,WM_CHAR,WM_KEYUP。11、Windows API中API的中文译文是应用程序接口 。12、MFC的中文译文是微软基础类库 。13、GDI的中文译文是图形设备接口。14、全局函数AfxGetApp()可以得到CWinApp应用类指针。15、MFC中可自动重绘的绘图代码一般位于项目的视图类的OnDraw()函数中。16、在视图中,GetDocument()函数可得到对应的文档对象指针。17、在文档中,GetFirstviewPosition()和GetNextview()配合可用来遍历所有和文档关联的视图。18、在MFC中,用CRect类来描述一个矩形区域的大小 。19、在任何时刻设备环境中必须有一支画笔,并且只能有一支。因此在使用自己定义的画笔时,要使用CDC的函数把默认画笔替换为自己定义的画笔,这个函数是SelectObject() 。20、MFC的缺省的映射模式是MM_TEXT,对应的单位为像素 。21、在视图类中为了访问与视图关联的文档对象中数据,应该先调用GetDocument() 函数得到 相关联文档对象指针 。22、利用MFC AppWizard可以生成SDI界面、MDI界面和基于对话框界面的程序。23、在框架窗口中,GetActiveDocument()函数可得到当前活动文档指针, GetActiveView()函数可得到当前活动视指针。24MFC对话框类的基类是CDialog ,用户自定义对话框类都是从它派生而来。25Windows系统是一个消息响应事件驱动的操作系统,消息是应用程序与操作系统交互的手段。26.GetMessage( )被用来从消息队列获取消息,27.函数TranslateMessage( )用来把键盘消息转换为字符消息,函数DispatchMessage( )用来向系统派送消息。五、选择填空题(每空1分,共15分)1、 B 代表窗口客户区的显示设备上下文, C 代表整个窗口的显示设备上下文。A、CPaintDC B、CClientDC C、CWindowDC D、CMetaFileDC2、消息循环的处理过程如下: A 函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后, B 把来自键盘的命令翻译成WM_XXX消息命令形式。 E 函数通知Windows把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。A、GetMessage( ) B、translateMessage( ) C、PostMessage( ) D、SendMessage( ) E、DispatchMessage( )3、滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用 C 函数,设置滚动块的位置使用 E 函数,获取滚动块的当前位置使用 F 函数。A、SetPos B、SetRange C、SetScrollRange D、GetPosE、SetScrollPos F、GetScrollPos G、 GetScrollRange4、所有的文档类都派生于 C ,所有的视图类都派生于 A 。A、CView B、CWindow C、CDocument D、CFormView5、 C 包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息; D 用来与Windows的控制对象,如列表框、按钮、复选框等进行双向通信。当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。A、系统消息 B、用户消息 C、输入消息 D、控制消息6、使用 B 获取的设备上下文在退出时,必须调用ReleaseDC( )释放设备上下文。 A、GetWindowRect( ) B、GetDC( ) C、BeginPaint() D、GetClientRect( )六判断题1.所谓的Windows API就是独立于C语言的一套全新的程序设计语言。( )2.在Windows编程约定中,CHAR数据类型和TCHAR数据类型是相同的。( )3.匈牙利命名法是所有程序都必须遵循的一个规则,变量的命名必须按照规则进行。( )4.在Windows编程约定中,代表窗口句柄的数据类型是HWND。( )5.在Windows编程中,使用窗口句柄来操作具体的窗口。( )6.在Windows的消息结构中,键盘的按键字符信息被保存在lParam中。( )7.在Windows消息机制中,WM_TIMER消息表示创建了1个定时器。( )8.所有的Windows程序,其入口函数必须名为WinMain。( )9.PostMessage和SendMessage的区别在于前者投递消息到队列,而后者直接调用消息响应函数。( )10.在Windows编程中,AppendMenu可以在菜单的任意位置插入新的菜单项。( )11.在Windows编程中,菜单可以在资源视图中设计,一旦载入程序,就不能再被更改。( )12.在Windows编程中,键盘按键弹起时,会返回消息WM_KEYDOWN。( )13.在Windows编程中,鼠标消息中不包含任何键盘信息。( )14.在Windows编程中,1个程序中只允许设置一个定时器。( )15.画笔颜色构成是0x00BBGGRR,其中B、G、R分别代表1位16进制数表示蓝、绿和红色分量的大小。( )16.对于GDI点阵字体和GDI笔划字体,Windows都可以合成粗体、斜体、加底线和加删除线,而不需要为每种属性另外储存字体。( )17.FillRect中指定的画刷是用于画矩形本身和边框,FrameRect中指定的画刷是用于画矩形的边框。( )18.Win32 API可以直接读取所有的图像格式。( )19 打开一个项目,只需打开对应的项目工作区文件。 ( )20 基于对话框的应用程序,也有文档类和视图类。( )21 所有的Windows应用程序都是消息驱动的。( )22 COMMAND(菜单消息类型)是更新命令用户接口消息。( )23 删除CPen对象可调用CPen对象的DeleteObject函数。 ( )24 CBrush是GDI对象。( )25 Windows应用程序的入口也是main函数。( )七简答题1Windows应用程序的主函数有哪三个主要任务 答注册窗口类、创建应用程序的窗口和建立消息循环。 2.运行程序后单击鼠标右键弹出对话框提示“您按下了鼠标右键”对话框。简要说明设计步骤。参考答案:(1)新建基于单文档的应用程序; (2)用类向导映射鼠标右键消息;(3)在消息函数中添加代码:MessageBox(“您按下了鼠标右键”);3、.利用AppWizard生成默认的SDI应用程序My时,向导自动生成的哪四个类?及其相应的功能。参考答案:CMainFrame(构建应用程序,显示窗架)CMyApp(整个应用程序)CMyDoc(管理数据)CMyView(显示数据)4.创建窗口的五个步骤:参考答案:1)定义窗口 2)注册窗口 3)创建窗口 4)显示窗口 5)消息循环5如何显示和更新窗口?答:调用函数ShowWindow显示窗口,调用函数UpdateWindows更新窗口。6什么是消息循环?答:在创建了窗口的应用程序中,应用程序将不断地从消息队列中获取消息,并将消息指派给指定的窗口处理函数来处理,然后再回来从消息队列获取消息,这个不断重复的工作过程叫做消息循环。7说明Windows应用程序的主函数、窗口函数与Windows系统之间的关系。答:Windows应用程序的主函数和窗口函数都是系统调用的函数,主函数是在应用程序启动时由系统首先调用的函数,而窗口函数是主函数在消息循环中获得消息并把消息派送给系统之后,由系统调用的用来处理消息的函数。8文档类的成员函数UpdateAllViews的作用是什么?答:通知文档所对应的所有窗口同时进行重绘。9MFC应用程序的界面有哪三种方式?答:(1)单文档界面;(2)多文档界面;(3)基于对话框界面。10WinMain()函数的工作。 WinMain()函数是Windows程序的入口点 在WinMain中进行注册窗体类、建立窗体、显示窗体、更新窗体、建立消息循环 11非MFC的Windows程序中,在WM_PAINT消息中怎样获得客户区的设备环境句柄。和不是WM_PAINT消息中怎样获得客户区的设备环境句柄。 BeginPaint -EndPaint GetDC-ReleaseDC(成对出现) 利用GetDC函数获取设备环境句柄 12句柄的含义。 句柄是一个通常为32位的无符号整数(unsigned int),它代表一个内核对象,是内核对象在应用层的表示。13在MM_TEXT映射模式下,什么情况下客户坐标和逻辑坐标可能不同。 当窗口客户区有滚动条时客户坐标和逻辑坐标可能不同 14GetMessage()函数在什么情况下返回0从而导致消息循环终止程序结束。 在接收到WM_QUIT消息时返回0 15Windows中应用程序的输出是怎样进行的。 通过设备描述表DC(Device Context)来进行应用程序与物理设备之间的交互16当程序中某个函数改变了数据而需要重新绘制客户区时WM_PAINT不会被自动调用,这时需要怎样间接调用它。 使用InvalidateRect()调用17键盘消息处理函数OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags)中的主要参数。 参数UINT nChar指按下按键的虚拟键码;nRepCnt 按键按下的次数; nFlags有没有其他键同时被按下;如shift、ctrl、Alt18DC中的SetROP2()的作用。 设定绘图模式 19扩展名为.rc的文件是什么。 资源文件20GDI绘图函数所使用的参数。 GDI绘图函数使用的逻辑坐标21当用户按下某个字母键时消息发生的顺序。 WM_KEYDOWN-TranslateMessage()-WM_CHAR22常用的客户区鼠标消息有哪些 答WM_LBUTTONDBCLK 双击鼠标左键 WM_LBUTTONDOWN 按下鼠标左键 WM_LBUTTONUP 释放鼠标左键 WM_MOUSEMOVE 移动鼠标 WM_RBUTTONDBCLK 双击鼠标右键 WM_RBUTTONDOWN 按下鼠标右键 WM_RBUTTONUP 释放鼠标右键23什么样的窗口才能接收键盘消息 答在Windows中有时会同时打开多个窗口。在这些窗口中只有一个是活动窗口这个窗口一般是屏幕上位置最靠前的窗口它的特征是其标题栏被点亮的而不是灰色的。只有活动窗口才具有输入焦点而Windows中规定只有具有输入焦点的窗口才能接收键盘消息也就是说只有活动窗口才能接收键盘消息。 24.键盘消息分为哪几类哪些键只产生按键消息不产生字符消息 答键盘消息可以分成按键消息和字符消息两类。按键消息分为系统按键消息(WM_KEYDOWN,WM_KEYUP)和非系统按键消息WM_SYSKEYDOWN,WM_SYSKEYUP。字符消息也同样分为系统字符消息WM_CHAR,WM_DEADCHAR和非系统字符消息WM_SYSCHAR,WM_SYSDEADCHAR。值得注意的是系统按键消息只能产生系统字符消息非系统按键消息只能产生非系统的字符消息。在Windows中一些键是只产生按键消息而不产生字符消息的这些键包括Shift键、Ctrl键、功能键、光标移动键、特殊字符键。 25.在程序中如何确定窗口何时具有输入焦点何时失去输入焦点。答当应用程序的窗口获得输入焦点时会发出WM_SETFOCUS消息而当窗口失去输入焦点时会发出WM_KILLFOCUS消息。如果一个窗口获得了输入焦点便可以用键盘对这个窗口进行操作。26.在 WNDCLASSEX 结构类型中,各个成员所代表的含义是什么? WNDCLASSEX 结构类型定义如下: typedef struct _WNDCLASSEX UINT cbSize; UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; HICON hIconSm; WNDCLASSEX27.在 CreateWindowEx()函数中,各成员所代表的含义是什么? CreateWindowEx()函数定义如下: HWND CreateWindowEx(DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);28.UpdateWindow()函数的功能什么? UpdateWindow()函数定义如下: BOOL UpdateWindow(HWND hWnd);答:更新窗口客户区29.在 MSG 结构类型中,各个成员所代表的含义是什么? MSG 结构类型定义如下: typedef struct tagMSG HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; MSG, *PMSG; 30.DefWindowProc()函数的功能什么? DefWindowProc()函数定义如下: LRESULT DefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);答:函数功能:该函数调用缺省的窗口过程来为应用程序没有处理的任何窗口消息提供缺省的处理。该函数确保每一个消息得到处理。31. 讲匈牙利命名惯例的约定,还要记住那些习惯用法?匈牙利命名惯例的约定有两条:1. 标识符以一个或者几个小写字母开始,这些小写字母表示标识符的数据型;2. 大小写混杂写,使得标识符具有一定的含义,便于理解,增强可读性。习惯用法:在命名结构变量时,可以用结构名的小写字符序列作为变量名的字首,或者用整个结构名用作结构变量名。32 消息循环从应用程序消息队列取得窗口消息是怎样送給窗口消息处理程序?答:通过Dispatch(&msg)将消息发给指定的窗口;33. 主程序WinMain和WndProc是如何联系的?答:WinProc窗口处理函数是一个回调函数,它是用来处理消息的,是由Windows调用的。在注册窗口类的时候指定了窗口处理函数的入口地址,应用程序获得的消息都交给此入口地址对应的窗口处理函数来处理。34.解释下面函数申明中的每一个单词int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd ) ; 答:HINSTANCE是数据类型,hInstance称为执行实例代号。hPrevInstance是一个识别字,通过检查hPrevInstance就能够确定此应用程序是否已有过其他实例。lpCmdLine是指向命令序列的指针。nShowCmd指出应用程序的窗口的最初显示方式。35. 窗口类结构中常用的有那几个载入函数?它们的用法如何?答:LoadIcon函数 HICON WINAPI LoadIcon( / 返回的指向图标的指针,如果失败,返回NULL HINSTANCE hInstance, / 用户定义图标在哪个实例中, NULL为系统图标 LPCSTR lpIconName / 图标名,也称图标上的标签);LoadCursor()函数 HCURSOR WINAPI LoadCursor ( / 返回新载入的光标的句柄 HINSTANCE hInstance, / 载入的光标 LPCTSTR lpCursorName) / 预定义的光标资源名 GetStockObject(WHITE_BRUSH);/窗口背景色36、 有哪两种方法获得屏幕的hDC?答:利用GetDC()取得窗口hDC;在处理WM_PAINT消息期间使用BeginPaint()获得hDC;37、 BeginPaint和EndPaint在什么情况下使用,为什么要成对出现?答:在处理WM_PAINT消息期间使用。38、 InvalidateRect所决定的重绘区和BeginPaint所决定的重绘区有什么区别? InvalidateRect最后一个参数的作用是什么?答:程序调用BeginPaint时,在大多数情况下,fErase被标志为FALSE(0),这意味着Windows已经擦除了无效矩形的背景。在调用BeginPaint后PAINTSTRUCT结构的fErase条款将成为TRUE(非零)。而程序通过调用InvalidateRect函数使客户区中的矩形失效,则该函数的最后一个参数会指示是否擦除背景。如果这个参数为FALSE,则执行InvalidateRect时Windows将不擦除背景,反之,则会擦除背景。39、GetSystemMetrics函数的用处是什么? GetTextMetrics函数的用处是什么?为了存储它们所获得的信息,预先定义一个结构是什么?40、什么情况下产生WM_CREATE窗口消息?什么情况下产生WM_PAINT窗口消息?答:产生WM_CREATE窗口消息:执行CreateWindow函数时产生WM_PAINT窗口消息:执行UpdateWindow函数时 在使用者移动窗口或显示窗口时,窗口中先前被隐藏的区域重新可见。 使用者改变窗口的大小(如果窗口类别样式有着CS_HREDRAW和CS_VREDRAW位旗标的设定)。 程序使用ScrollWindow或ScrollDC函数滚动显示区域的一部分。 程序使用InvalidateRect或InvalidateRgn函数刻意产生WM_PAINT消息。 Windows擦除覆盖了部分窗口的对话框或消息框。(可能)菜单下拉出来,然后被释放。(可能)显示工具提示消息。41、 为什么WM_SIZE窗口消息后必然跟着一个WM_PAINT窗口消息?答:为我们定义窗口类的时候制定了类风格 CS_HREDRAW|CS_VREDRAW42、 如果用户希望立即更新无效区域,可以在调用InvalidateRect之后调用什么函数?答:UpdateWindow43 按照产生的按键消息分,按键分成那两类?答:系统按键和非系统按键44 按键消息有哪四种形式?系统按键消息有什么特点?它在哪里处理?那些不是系统按键消息?答:四种形式:WM_KEYDOWN WM_SYSKEYDOWNWM_KEYUP WM_SYSKEYUP特点:系统按键可能是一个按键也可能是几个按键的组合键,系统按键对 Windows系统起作用。由默认分支DefWindowProc处理系统键盘消息。WM_KEYDOWN WM_KEYUP45. 数字和字母的虚拟键码是怎样定义的?答:数字、字母的虚拟键码是用ASCII码定义的。46. 窗口函数中WM_KEYDOWN消息处理分支中的wParam和SendMessage函数第三个参数wParam有什么不同?答:消息处理分支中的wParam它是判断虚拟键盘的。而SendMessage中的wParam它是存放鼠标通知码。47、窗口函数中WM_KEYDOWN消息处理分支中的wParam和SendMessage函数第三个参数wParam有什么不同?48、鼠标是一种“必须要的选择设备”,如何应用GetSystemMetrics函数确认鼠标是否存在?写出程序代码。答:fMouse = GetSystemMetrics (SM_MOUSEPRESENT);八、程序设计题1、 已经在视图类中映射了单击鼠标右键的消息,在该函数中完成绘图,要求以鼠标点击位置为圆心、半径为100的绿色蓝边的圆。CEx4_2View:OnRButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultCView:OnRButtonDown(nFlags, point);参考答案CEx4_2View:OnRButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultCClientDC dc(this); CRect r(point.x-100,point.y-100,point.x+100,point.y+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(pOldPen);CView:OnRButtonDown(nFlags, point);2、为学员信息设计一个类CStudent,包含:学号、姓名、出生日期、家庭住址、班级,并使该类可以实现串行化。请写出可以实现要求的CStudent.h和CStudent.cpp文件的内容 /CStudent.hclass CStudent :public CObject public:CString Num;CString Name;CTime Birth;CString Address;
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


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

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


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