随笔分类 - Windows游戏编程大师技巧读书笔记
摘要:一、什么叫双缓冲 后备缓冲通过创建一个或多个主缓冲来实现平滑的动画显示,之后用户在不可见的后备缓冲里绘图(具备相同的尺寸和色彩深度的缓冲),只使用一个后备缓冲叫做双缓冲。二、用双缓冲技术执行动画流程三、创建后备缓冲 创建后备缓冲的目的是用DirectDraw的方式来实现对双缓冲功能的仿真。 为了创建一个关联有后备缓冲的主表面,必须创建DirectDraw所谓的复杂表面,步骤如下: 1、要将DDSD_BACKBUFFERCOUNT加到dwFlags标志字段,向DirectDraw表明DDSURFACEDESC2结构的dwBackBufferCount字段有效,其中含有后备缓冲的数目 ...
阅读全文
摘要:首先看一下的在8位、16位、24位、32位下颜色的编码格式吧,如下图:在256颜色模式中,每像素都是颜色查找表中的一个索引这是两种16位RGB编码模式,对于第一种模式,即5.6.5,共有32*64*32=65536种色彩,而第二种模式X5.5.5,共有32*32*32=32768种色彩对于这两种编码格式,建立它们的算法如下:#define _RGB16BIT555(r,g,b) ((b&31)+((g&31)<<5)+(r&31)<<10)#define _RGB16BIT565(r,g,b) ((b&31)+((g&63)<
阅读全文
摘要:一、DirectDraw接口 DirectDraw接口图如下: 1、IUnknown:所有COM对象都必须从这个基本接口派生 2、IDirectDraw:这是开始使用DirectDraw时必须创建的主接口对象 3、IDirectDrawSurface:这表示你用DirectDraw创建、控制和显示的实际显示表面。分两种:主显示表面(Primary Surface)和从显示表面(Secondary Surface) 4、IDirectDrawPalette:使用256或更少的颜色在视频模式下处理调色板,用于创建、加载和控制调色板,以及将调色板关联到显示表面 5、IDirectDraw...
阅读全文
摘要:一、COM1、什么是COM对象 一个COM对象事实上是一个或一套实现了大量接口的C++类2、COM的优点 不用重新编译你的程序就能升级COM模块3、COM概貌 4、COM对象的接口QueryInterface()是COM的关键,它用于申请一个指向你所希望的接口函数的指针所有从IUknown派生的接口最少也必须实现QueryInterface()、AddRef()和Release()这三个方法IUnkonwn的类定义如下:struct IUnknown{ virtual HRESULT _stdcall QueryInterface(const IID &iid,(void**)ip)=
阅读全文
摘要:一、颜色、画笔和画刷 1、使用画笔 创建画笔函数CreatePen() HPEN CreatePen(int fnPenStyle, //笔的样式,如PS_SOLID(实线),PS_DASH(虚线),PS_DOT(点),PS_DASHDOT(点划线),PS_DASHDOTDOT int nWidth, //笔的像素宽度 COLORREF crColor //颜色,通过RGB定义 ); 例子:红色笔 HPEN red _pen=CreatePen(PS_SOLID,1,RGB(2...
阅读全文
摘要:一:创建菜单 在Windows中使用菜单都是以关键字POPUP开头,POPUP指出了一个菜单可以使用如下的ASCII名称和菜单项来定义。弹出式菜单定义必须放在{}或BEGIN、END块中。例如:MainMenu MENU DISCARDABLE { POPUP "FIle" { MENUITEM "Open",MENU_FILE_ID_OPEN MENUITEM "Close",MENU_FILE_ID_CLOSE MENUITEM "Save",MENU_FILE_ID_SAVE MENUITEM "E
阅读全文
摘要:在C++中,编译及连接时的资源数据流程如下图所示:一、使用图标资源设置图标资源是在创建Window类的时候,WNDCLASSEX winclass;winclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //这表示加载默认的应用图标程序winclass.hIconSm=LoadIcon(NULL,IDI_APPLICATION);设置自己的图标资源,方法如下: 1、在编译器窗口左边的资源文件这一文件夹,右击添加现有项,选择图标; 2、新建资源文件,然后在.RC脚本文件中定义ICON资源,这里有两种方法 方法一:使用字符串名 icon_...
阅读全文
摘要:以下是包含的头文件 #define WIN32_LEAN_AND_MEAN // 指示编译器不要包含我们并不需要的MFC内容 #include // 包含所有的Windows头文件 #include // 含有许多重要的宏和常量的头文件 #include #include #define WINDOW_CLASS_NAME "WINCLASS1" Windows的事件循环处理消息的机制如下图: 现在我们来编写事件处理程序,因为在编写主程序时会调用这个函数LRESULT CALLBACK WindowProc(HWND hwnd, U...
阅读全文

浙公网安备 33010602011771号