2013《vc程序设计》总复习

2013《vc程序设计》总复习

ID:15749867

大小:44.50 KB

页数:5页

时间:2018-08-05

2013《vc程序设计》总复习_第1页
2013《vc程序设计》总复习_第2页
2013《vc程序设计》总复习_第3页
2013《vc程序设计》总复习_第4页
2013《vc程序设计》总复习_第5页
资源描述:

《2013《vc程序设计》总复习》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《VC程序设计》课程总复习题程轶平2013-5-16第一章Windows程序运行基本原理填空题:1.Win32API中的API是ApplicationProgrammingInterface的缩写。2.用C语言编程,Win32ConsoleApplication的入口点是main,Win32Application的入口点是WinMain。3.WinMain函数有四个参数,其中第一个参数hInstance是本程序实例的句柄,第二个参数hPrevInstance是为了与Win16兼容而设置的,总是置成NULL,第三个参数lpszCmdLine是指向命令行字符串的指针,

2、第四个参数nCmdShow指的是应用程序主窗口初次以何种方式显示。4.句柄(handle)是用来标识一个Windows对象的,比如窗口,菜单,图标,画刷等等。句柄本质上是指向对象内存数据结构的指针。5.创建窗口之前需事先注册窗口类,它是通过调用RegisterClass函数来实现的。6.注册窗口类使用的数据结构为WNDCLASS,其成员lpfnWndProc是此窗口类的窗口函数的入口地址,lpszClassName是此窗口类的名称或ID。7.CreateWindow在内存中创建好一个窗口后,在其返回之前向该窗口发送WM_CREATE消息。窗口函数可在处理该消息时做

3、一些初始化工作。8.窗口创建后,要在屏幕正确显示该窗口,需调用ShowWindow和UpdateWindow函数。9.应用程序的每个线程有一个消息队列,线程所属的各窗口通过它与用户交互。10.DispatchMessage(MSG*lpmsg)的功能是:根据lpmsg->hwnd,调用其窗口函数,其四个参数分别为lpmsg->hwnd,lpmsg->message,lpmsg->wParam,lpmsg->lParam。问答题:1.消息循环是如何结束的?答:用户按下主窗口的关闭按钮后,Windows在消息队列中放入针对该窗口WM_NCLBUTTONDOWN消息,在

4、释放关闭按钮时Windows在消息队列存放WM_NCLBUTTONUP消息。DefWindowProc处理这两个消息时,向本窗口发送WM_SYSCOMMAND消息(wParam=SC_CLOSE)。DefWindowProc在处理此消息时,向本窗口发送WM_CLOSE消息。DefWindowProc处理WM_CLOSE时执行DestroyWindow,将此窗口无论是在屏幕还是内存中销毁。在窗口即将销毁之前,DestroyWindow向本窗口发送WM_DESTROY消息。DefWindowProc对WM_DESTROY消息不作处理,因此主窗口的窗口函数需要处理WM_

5、DESTROY消息,做法是在消息队列放一个WM_QUIT消息。这样,当下次GetMessage时,取到的是WM_QUIT消息,此时GetMessage返回FALSE,这样,消息循环就结束了。1.MainWndProc是我的程序主窗口的窗口函数,它确实起作用了,但是我的程序代码中却没有任何一个地方调用MainWndProc。这究竟是怎么回事呢?答:其实在主程序消息循环中的DispatchMessage调用了MainWndProc。在窗口的内存数据结构中有一个成员是该窗口的窗口函数入口地址,它是你RegisterClass后作为窗口类的数据,后来又在CreateWin

6、dow时写入窗口的数据结构。3.PostMessage和SendMessage有什么不同?答:PostMessage仅仅把消息放入消息队列,而不等待此消息被处理。SendMessage本质上就是调用该窗口的窗口函数,因此它是在此消息被处理完后才返回的。4.哪些消息是被Post的,哪些消息是被Send的?答:理论上任何消息都可以被Post或者被Send。但是Windows一般是将由输入设备直接产生的消息,如键盘和鼠标消息,Post到消息队列。菜单操作引发的WM_COMMAND消息也是被Post到消息队列。不过,消息队列的消息是DispatchMessage处理的,它

7、也是最终通过SendMessage来实现对消息的处理的。因此,实际上所有的消息最终都是被Send到窗口,包括消息队列的消息。从消息队列取得的消息可以认为是“一手”消息,在处理这些“一手”消息的过程中会产生很多“二手”,“三手”。。。消息,这些引发的消息往往是不经过消息队列直接Send的。第二章WindowsAPI架构填空题:1.Win32API函数以动态连接库(DLL)的方式供程序调用。最主要的DLL文件有三个:Kernel32.dll,GDI32.dll,User32.dll,分别提供操作系统核心操作函数,图形用户界面函数,和窗口管理及输入设备接口函数。2.你的

8、程序如果要

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。