windows简答题.docx_第1页
windows简答题.docx_第2页
windows简答题.docx_第3页
windows简答题.docx_第4页
windows简答题.docx_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1:C语言的入口函数是哪个?分别写出各个参数的作用。int main(int argc, char* argv) argc是命令行总的参数个数; argv是argc个参数,其中第0个参数是程序的全名,以后的参数是命令行后面跟的用户输入的参数。 2:MFC使用向导生成对话框应用程序,会自动生成三个类,如:CAboutDlg、CDemoApp、CDemoDlg,请分别说明三个类的作用?以及三个类之间的关系。创建典型的对话框程序(示例)后,会出现如下几个类: CAboutDlg:关于版本对话框控制类; CDemoApp:应用程序管理类; CDemoDlg:对话框管理类。其中,后两个类是根据项目名称而定的,规则是:C+项目名称+App(或Dlg) 3:PostMessage与SendMessage的区别。SendMessage 函数功能是,将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用过程处理程序,直到过程处理函数处理完消息再返回。PostMessage 函数功能是,将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。4:Windows系统提供了一个定时响应的消息WM_TIMER,该消息的名称是什么?SetTimer()函数与KillTimer()函数的作用是?WM_TIMER 定时器消息;SetTimer() 设置定时器;KillTimer() 销毁定时器5:什么是指针?什么是句柄?描述句柄与指针的区别?指针:内存单元的编号也叫做地址。既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。句柄,是整个windows编程的基础,一个句柄是指使用的一个唯一的整数值,是指一个四字节长的数值,用于标志应用程序中不同的对象实例。区别: 句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。 6:什么是消息?什么是事件驱动程序?消息:在Windows中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows应用程序都是消息驱动的。事件驱动:简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数).当然事件不仅限于用户的操作. 事件驱动的核心自然是事件。7:代码规范是程序编写的重要准则,请用你的话说明一下什么是代码规范。代码规范:是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆、容易理解的原则。 需要大家自己理解。8:使用类向导生成的对话框工程中,自动生成三个类,请写出这三个类的名称,并说明其含义。CAbout:关于对话框管理类;C+工程名+App:应用程序管理类; C+工程名+Dlg:对话框管理类;9:写出鼠标左键按下与右键按下时截获的消息。鼠标左键按下1. WM_LBUTTONDOWN 左键按下消息2. WM_LBUTTONUP 左键抬起消息鼠标右键按下1. WM_RBUTTONDOWN 右键按下消息2. WM_RBUTTONUP 右键抬起消息10:在图形与文字绘制时,需要捕获的消息是哪个?需要在此消息的什么位置(哪两个函数之间)加入绘制图形的代码?绘制文字时,需要捕获WM_PAINT消息,需要在此消息下的BeginPaint()函数与EndPaint()消息之间加入图形、文字的绘制。11:在过程处理函数中,如何获得鼠标按下时光标的位置坐标,写出两种方法。方法一:HIWORD(lParam)为鼠标的Y值LOWORD(lParam)为鼠标的X值方法二:GetCursorPos 函数,作用是获取光标的位置,以屏幕坐标表示。12:填写消息机制原理图中画横线部分的内容。(1) (1分)(2) (1分)(3) (1分)(4) (2分)(1)CreateWindow()(2)UpdateWindow()(3)ShowWindow()(4)GetMessage()13:已知下面的相关函数描述,完成绘制红色矩形框的程序。创建画刷的函数是 HBRUSH CreateSolidBrush(COLOREF corlor);选择绘图对象的函数是HGDIOBJ SelectObject(HDC hdc,HGDIOBJ hObj);画矩形的函数是Rectangle(HDC hdc,int left,int top,int right,int bottom);完成下面的代码片段。HBRUSH _(空1)_ =_(空2)_ (RGB(255,0,0);HBRUSH hOldBrush = (_空3_) _(空4)_ (hdc,hBrush);Rectangle(hdc,50,50,400,400);_(空5)_(hdc,hOldBrush);DeleteObject(hBrush);空1:hBrush空2:CreateSolidBrush空3:HBRUSH空4:SelectObject空5:SelectObject14:对话框有两种模式,分别是什么?它们之间的区别是什么?对 话框窗口分为两种:模式对话框窗口与无模式对话框窗口。模式对话框窗口也称为模态对话框窗口,是指用户在Win32应用程序的对话框中,想要对对话框以外 的应用程序进行操作时,必须先对该对话框进行响应,如单击【确定】或【取消】按钮等操作,将该对话框关闭。相对应的另一个对话框是无模式对话框,即可以在 不关闭当前的对话框窗口的情况下操作其他窗口。15:已知鼠标移动的消息是WM_MOUSEMOVE,绘图消息的是WM_PAINT,如果想实现鼠标移动的时候,在窗口中显示鼠标的光标位置,需要完成的代码如下,请填写空白区域。注意:代码中省略号部分不要求填写,是省略的代码。(5分)/全局变量char szBuf512/窗口过程处理函数;LRESULT CALLBACK WinProc(_空1_, UINT message, WPARAM wParam, LPARAM _空2_) int x,int y; HDC hdc; switch(message) case WM_PAINT: hdc = break; case WM_MOUSEMOVE: x =LOWORD(_空3_);y=HIWORD(_空4_); sprintf(szBuf,”%d,%d”,x,y); InvalidateRect(_空5_, lpRect, NULL ); break; 空1 :HWND hWnd空2 :lParam空3 :lParam空4 :lParam空5 :hWnd16:描述句柄与指针的区别。句柄,是整个windows编程的基础,一个句柄是指使用的一个唯一的整数值,是指一个四字节长的数值,用于标志应用程序中不同的对象实例,如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息。 句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。17:本程序通过HPEN实现了图形绘制,如下图所示,其绘制步骤为:1)创建画笔;2)选入画笔;3)绘图;4)选出画笔;5)删除画笔。通过如上五个步骤实现图形的绘制功能,绘制的内容为红色平行线,如下图所示:参数函数列表:创建画刷:CreateSolidBrush(RGB(255,0,255);选入、选出画刷:SelectObject绘制直线:MoveToEx(int x, int y)、LineTo(int x, int y)删除画刷:DeleteObject注意:画笔选入选出时,要强制类型转换为HPEN类型。画刷句柄:HBRUSHHPEN hPen= CreatePen( PS_SOLID,3,RGB(255,0,0); HPEN hOldPen = (HPEN)SelectObject(hdc,hPen); MoveToEx(hdc,100,50,NULL); LineTo(hdc,200,300); SelectObject(hdc,hOldPen); DeleteObject(hPen); 18:消息循环就是程序的发动机,分别写出TranslateMessage及DispatchMessage的作用。TranslateMessage():该函数将虚拟键消息转换为字符消息。字符消息被寄送到消息队列里,当下一次线程调用GetMessage或PeekMessage时被读出; DispatchMessage():该函数分发一个消息给窗口程序。通常消息从GetMessage函数获得。消息被分发到回调函数(过程处理函数)。 19:用你的话描述一下什么是代码规则?并举出几个实例。20:用你的话描述一下消息与事件的关系。所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数).当然事件不仅限于用户的操作. 事件驱动的核心自然是事件。 消息:在Windows中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows应用程序都是消息驱动的。 消息与事件之间的关系: 事件触发消息,消息传递事件。 21:窗口关闭的时候产生的消息有哪些?分别描述作用?产生的消息有三个:WM_CLOSE WM_DESTROY WM_QUIT WM_CLOSE 用户试图关闭窗口的时候系统发送该消息。WM_DESTROY 用户关闭窗口时候,系统发送WM_CLOSE消息之后,系统发送的关闭窗口的消息。WM_QUIT 当应用程序调用PostQuitMessage函数时生成此消息,此消息产生后,会将GetMessage函数的返回值改变为0. 22:窗口创建的过程(文字描述即可)?1.设计一个窗口风格; 2.注册窗口类; 3.创建窗口; 4.显示及更新窗口; 5.*进入消息循环(扩展)。23:本程序通过HBRUSH实现了图形绘制,如下图所示, 其绘制步骤为: 1) 创建画刷; 2) 选入画刷; 3) 绘图; 4) 选出画刷; 5) 删除画刷。 通过如上五个步骤实现图形的绘制功能,绘制的内容为一个长方形,一个圆形,长方形的颜色为绿色,圆的颜色为红色。 参数函数列表: 画刷句柄:HBRUSH 创建画刷:CreateSolidBrush(RGB(255,0,255); 选入、选出画刷:SelectObject 绘制矩形: Rectangle(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect); 删除画刷:DeleteObject 注意画刷选入选出时,要强制类型转换为HBRUSH类型。绘制矩形:HBRUSH hBrush =CreateSolidBrush(RGB(0,255,0); HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc,hBrush); Rectangle(hdc,50,50,150,150); SelectObject(hdc,hOldBrush); DeleteObject(hBrush); 绘制圆形:HBRUSH hBrush =CreateSolidBrush(RGB(255,0,0); HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc,hBrush); Ellipse(hdc,200,200,350,350); SelectObject(hdc,hOldBrush); DeleteObject(hBrush); 24:编写画矩形函数,要求创建红色画刷,hdc由函数参数传递。矩形的起点为(100,100),终点为(200,200)。绘制矩形:HBRUSH hBrush =CreateSolidBrush(RGB(255,0,0); HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc,hBrush); Rectangle(hdc,100,100,200,200); SelectObject(hdc,hOldBrush); DeleteObject(hBrush); 25:编写画线函数,要求创建PS_SOLID型画笔,颜色为红色,hdc由函数参数传递。线的起点为(100,100),终点为(200,200)。HPEN hPen= CreatePen( PS_SOLID,3,RGB(255,0,0); HPEN hOldPen = (HPEN)SelectObject(hdc,hPen); MoveToEx(hdc,100,100,NULL); LineTo(hdc,200,200); SelectObject(hdc,hOldPen); DeleteObject(hPen);26:本 程序通过HBRUSH实现了图形绘制,如下图所示,其绘制步骤为: 1) 创建画刷; 2) 选入画刷; 3) 绘图; 4) 选出画刷; 5) 删除画刷。 通过如上五个步骤实现图形的绘制功能,绘制的内容为一个正方形,正方形的颜色为蓝色,起点为坐标为100,100,宽与高为150,根据如上要求在空白处 填写代码。Void MyDrawLine(HDC hdc) HBRUSH hBrush = CreateSolidBrush(RGB(_1_);HBRUSH hOldBrush = (HBRUSH)SelectObject(_2_, _3_);Rectangle(hdc, _4_,_5_,_6_,_7_);SelectObject(_8_, _9_);DeleteObject(_10_);0, 0, 255hdc hBrush100 100 250 250hdc hOldBrushhBrush27:计算机中显示的图形一般可以分为两大类-矢量图和位图,请分别描述这两种图型的区别。矢 量图使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的。例如一幅花的矢量图形实际上 是由线段形成外框轮廓,由外框的颜色以及外框所封闭的颜色决定花显示出的颜色。由于矢量图形可通过公式计算获得,所以矢量图形文件体积一般较小。矢量图形 最大的优点是无论放大、缩小或旋转等不会失真。最大的缺点是难以表现色彩层次丰富的图像效果。位图,又称光栅图,一般用于照片品质的图像处理,是由许多像小方块一样的像素组成的图形。由像素的位置与颜色值表示,能表现出颜色阴影的变化。简单说,位图就是以无数的色彩点组成的图案,当无限放大时会看到一块一块的像素色块,效果会失真。28:请写入创建画刷时的五个步骤(文字说明即可)。1)2)3)4)5)1.创建画刷 2.选入画刷 3.绘图 4.选出画刷 5.删除画刷29:请写出如下代码的含义。HBRUSH hBrush = CreateSolidBrush(RGB(255,0,0);HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc,hBrush);Rectangle(hdc,50,50,400,400);SelectObject(hdc,hOldBrush);DeleteObject(hBrush);1.创建红色画刷 2.选入画刷 3.绘制350*350的矩形 4.选出画刷 5.删除画刷30:请简述三种系统刷新请求。(1)窗口发生变化,窗口的尺寸发生变化、客户区域移动显示或程序通过滚动条滚动窗口等;(2)窗口覆盖,窗口被其他窗口覆盖、窗口切换焦点或有菜单操作等;(3)使用系统API,使用系统屏幕刷新函数,如,InvalidateRect和InvalidateRgn等。31请解释一下WM_KEYDOWN、WM_KEYUP以及WM_CHAR消息的作用,以及区别。WM_KEYDOWN 键盘按下消息WM_KEYUP 键盘抬起消息WM_CHAR 当WM_KEYDOWN 被TranslateMessage 函数翻译后产生该消息。WM_KEYDOWN与WM_KEYUP捕获的按键内容不区分大小写(全部为大写),而WM_CHAR捕获的按键内容区分大小写。 32:鼠标及键盘的消息有哪些?至少写出6个。鼠标的消息: WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK WM_RBUTTONDOWN WM_RBUTTONUP WM_RBUTTONDBLCLK WM_MBUTTONDOWN WM_MOUSEMOVE WM_MOUSEWHEEL WM_NCLBUTTONDOWN WM_NCLBUTTONUP 键盘消息:WM_KEYDOWN WM_KEYUP WM_CHAR 33:鼠标的消息有哪些?写出5个。鼠标消息:WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK WM_RBUTTONDOWN WM_RBUTTONUP WM_RBUTTONDBLCLK WM_MBUTTONDOWN WM_MOUSEMOVE WM_MOUSEWHEEL WM_NCLBUTTONDOWN WM_NCLBUTTONUP 34:已知鼠标点击的消息是WM_LBUTTONDOWN,绘图消息的是WM_PAINT,如果想实现鼠标移动的时候,在窗口中显示鼠标的光标位置,需要完成的代码如下,请填写空白区域。注意:代码中省略号部分是不要求填写的,省略的代码。/全局变量char szBuf512/窗口过程处理函数;LRESULT CALLBACK WinProc(_空1_hwnd, UINT_空2_, , LPARAM lParam) int x,int y; HDC hdc; switch(message) case WM_PAINT: hdc = Break; case WM_LBUTTONDOWN: x =LOWORD(_空3_);y=HIWORD(_空4_); sprintf(szBuf,”%d,%d”,x,y); InvalidateRect(_空5_, lpRect, NULL); break; 空1: HWND空2: message空3: lParam空4: lParam空5: hWnd35:根据窗口创建的步骤选择相应的代码。设计一个窗口风格答案 1 显示及更新窗口答案 2 创建窗口答案 3 注册窗口答案 4 进入消息循环答案 5 设计一个窗口风格 WNDCLASS, 显示及更新窗口 ShowWindow、UpdateWindow, 创建窗口 CreateWindow, 注册窗口 RegisterClassEx, 进入消息循环 while (GetMessage(&msg, NULL, 0, 0) TranslateMessage(&msg); DispatchMessage(&msg); 36:已知鼠标点击的消息是WM_LBUTTONDOWN,绘图消息的是WM_PAINT,如果想实现鼠标移动的时候,在窗口中显示鼠标的光标位置,需要完成的代码如下,请填写空白区域。注意:代码中省略号部分是不要求填写的,省略的代码。(5分)/全局变量char szBuf512/窗口过程处理函数;LRESULT CALLBACK WinProc( 空1 hWnd, UINT 空2 , , LPARAM lParam) int x,int y; HDC hdc; switch(message) case WM_PAINT: hdc = Break; case WM_LBUTTONDOWN: x =LOWORD( 空3 ); y=HIWORD ( 空4 ); sprintf(szBuf,”%d,%d”,x,y); InvalidateRect( 空5 , lpRect, NULL); break; 空3答案 1 空1答案 2 空5答案 3 空4答案 4 空2答案 5 空3 lParam, 空1 HWND, 空5 hWnd, 空4 lParam, 空2 message37:对关闭窗口时产生的消息及解释正确连线。WM_DESTROY答案 1 WM_QUIT答案 2 WM_CLOSE答案 3 正确答案是:WM_DESTROY 执行命令, WM_QUIT 完成命令, WM_CLOSE 下命令38:已知下面的相关函数,完成绘制红色矩形框。请在空白处选择正确的答案。HBRUSH 空1 = 空2 (RGB(255,0,0);HBRUSH hOldBrush = ( 空3 ) 空4 (hdc,hBrush);Rectangle(hdc,50,50,400,400);SelectObject(hdc,hOldBrush); 空5 (hBrush);空4答案 1 空2答

温馨提示

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

评论

0/150

提交评论