送给初学者的礼物:c++游戏编程起源连载三

送给初学者的礼物:c++游戏编程起源连载三

ID:34547234

大小:495.22 KB

页数:50页

时间:2019-03-07

送给初学者的礼物:c++游戏编程起源连载三_第1页
送给初学者的礼物:c++游戏编程起源连载三_第2页
送给初学者的礼物:c++游戏编程起源连载三_第3页
送给初学者的礼物:c++游戏编程起源连载三_第4页
送给初学者的礼物:c++游戏编程起源连载三_第5页
资源描述:

《送给初学者的礼物:c++游戏编程起源连载三》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、上学吧(www.shangxueba.com)送给初学者的礼物:C++游戏编程起源连载三第三章跟踪你的窗口和使用GDI简介如果你看过了头两篇连载,这次我们将学习WINDOWSGDI(图形设备接口)和其它一些相关的东西,象响应用户输入和处理Windows产生的一些消息。至于显示图形,我们将接触三个课题:文本显示,绘制象素,显示位图。我们先来研究一下几个Windows消息的细节。重复的话:你需要C语言的基础知识,最好看过上两章。由于本章将使你能做一个具体的图形DEMO,有一个源代码例程附在本章后面。是用Visual

2、C++写的和编译的。在连载一里,我们创建和注册了一个窗口类,其中有一行定义了窗口的风格(功能),是这个样子:sampleClass.style=CS_DBLCLKS

3、CS_OWNDC

4、CS_HREDRAW

5、CS_VREDRAW;//standardsettings其中三个属性是很一般的,但这个——CS_OWNDC,需要解释一下。设备上下文是一个结构,是一个表现一组图形对象和属性的结构,还有一些输出设备的设置和属性。使用设备上下文允许你直接操纵图形,第1页,共50页上学吧为您提供“计算机等级考试”复习资料下载:h

6、ttp://www.shangxueba.com/share/s23.html上学吧(www.shangxueba.com)不用考虑低级细节。WindowsGDI是一个图形翻译系统,是介于应用程序和图形硬件之间的一层。GDI可以输出到任意的兼容设备,不过最常使用的设备是视频监视器、图形硬拷贝设备(如打印机或绘图仪),或者是内存中的图元文本。GDI函数能够绘制直线、曲线、封闭的图形和文本。所有访问GDI的Windows函数都需要一个设备上下文句柄作为参数。这是非常容易做到的。你若想得到一个窗口的设备上下文句柄,你

7、可以用这个函数:HDCGetDC(HWNDhWnd//handletoawindow);很简单,所有你做的是,把要操作的窗口的句柄传递给它,然后返回一个设备上下文句柄。如果你传递的是NULL,将返回整个屏幕的设备上下文(DC,以后都用DC表示)句柄。如果函数调用失败,将返回NULL。处理显示图形的DC类型,称作显示DC,处理打印的,称作打印DC;处理位图数据的,称作内存DC,还有其它一些设备DC。感觉有点复杂吧,不要紧,这是Windows,它的主要功能就是迷惑群众。一旦第2页,共50页上学吧为您提供“计算机等级

8、考试”复习资料下载:http://www.shangxueba.com/share/s23.html上学吧(www.shangxueba.com)我们接触一些代码,就不会觉得难了。当你结束使用DC时,一定要释放它,也就是释放它占用的内存空间。要把这种思想贯穿到以后的编程中去,占用了内存,不用时要释放,切记!释放DC是一个很简单的函数:intReleaseDC(HWNDhWnd,//handletowindowHDChDC//handletodevicecontext);若成功释放,返回值是1,否则是0。参数有注

9、释,我还是说一下:※HWNDhWnd:你所要控制的那个窗口的句柄。如果你开始传递的是NULL,现在还要传递NULL。※HDChDC:DC的句柄。在用DC和GDI进行图形显示前,我们先看看创建窗口实例时要遇到的几条重要的消息。我将要提到的四条消息是:WM_MOVE、第3页,共50页上学吧为您提供“计算机等级考试”复习资料下载:http://www.shangxueba.com/share/s23.html上学吧(www.shangxueba.com)WM_SIZE、WM_ACTIVATE、WM_PAINT。追踪窗

10、口状态头两个是很简单的。当窗口被用户移动时将发送WM_MOVE消息,窗口新位置的坐标储存在lparam中。(还记得吗,消息在lparam和wparam中被进一步描述,它们是消息控制函数的参数)lparam的低端字中存储窗口客户区左上角的坐标x,高端字中存储坐标y。当窗口的大小被改变时,将发送WM_SIZE消息。同WM_MOVE消息差不多,lparam的低端字中存储客户区的宽度,高端字存储高度。同WM_MOVE不同的是,wparam参数也控制了一些重要的东西。它可以是下列中任意一个值:※SIZE_MAXHIDE:

11、其它的窗口被最大化了。※SIZE_MAXIMIZED:本窗口被最大化了。※SIZE_MAXSHOW:其它的窗口被还原了。※SIZE_MINIMIZED:本窗口被最小化了。第4页,共50页上学吧为您提供“计算机等级考试”复习资料下载:http://www.shangxueba.com/share/s23.html上学吧(www.shangxueba.com)※SIZE_RESTORED:

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

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

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