摘要: 为什么要使用双缓冲绘制在进行多图元绘制的时候:因为是要一个一个画上去,所以每画一个图元,系统就要做一次图形的绘制操作,图形的重绘是很占用资源的,特别当需要重绘的图形数量很多的时候,所造成的消耗就特别大,导致闪烁,不流畅等情况。那么如何来解决这个问题呢?那就是双缓冲.它的基本原理就是先在内存中开辟一块... 阅读全文
posted @ 2014-06-20 17:58 d3inc 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 传统的Win32通过GDI提供图形显示的功能,包括了基本的绘图功能,如画线、方块、椭圆等等,高级功能包括了多边形和Bezier的绘制。这样app就不用关心那些图形学的细节了,有点类似于UNIX上的X-window协议。你信或者不信,那些看上去很花哨的控件,其实就是一笔一划画上去的而已。GDI提供了画... 阅读全文
posted @ 2014-06-20 17:52 d3inc 阅读(1163) 评论(0) 推荐(0) 编辑
摘要: 在GDI里面,你要想开始自己的绘图工作,必须先获取一个device context handle,然后把这个handle作为绘图复方法的一个参数,才能完成任务。同时,device context handle是同一定的绘图属性绑定在一起的,诸如画笔、话刷等等,你必须在画线之前创建自己的画笔,然后使用... 阅读全文
posted @ 2014-06-20 17:49 d3inc 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 显示位图,你应该使用GDI+里面的Bitmap类或者Image类,这两个类都提供了方法从硬盘上的一个文件打开文件,创建相应的内存中的位图对象的工作。然后你可以使用Graphics类的DrawImage方法来绘制该位图。下面的代码初始化GDI+,显示一个打开文件对话框并且创建Bitmap对象,显示位图... 阅读全文
posted @ 2014-06-20 17:46 d3inc 阅读(1041) 评论(0) 推荐(0) 编辑
摘要: 在我理解看来,Graphics是一个device context和你的drawing conetent之间的一个中介。它存储了device context的相关属性,以及drawing content的属性。这样,它就能用自己的方法把drawing content“映射”到device conten... 阅读全文
posted @ 2014-06-20 17:43 d3inc 阅读(608) 评论(0) 推荐(0) 编辑
摘要: GDI+提供了GdiplusStartup和 GdiplusShutdown 函数来进行初始化和完成清理工作。你必须在调用其他的GDI+函数之前,调用GdiplusStartup函数,在完成GDI+工作后调用GdiplusShutdown 。具体的可以看下面的MSDN上的例子:#include #i... 阅读全文
posted @ 2014-06-20 17:40 d3inc 阅读(548) 评论(0) 推荐(0) 编辑
摘要: GDI+, Microsoft Graphics Device Interface Plus, 是微软在继GDI(Microsoft Graphics Device Interface)后推出的图形编程接口,它捅GDI一样隐藏了下层显示设备、打印设备的具体细节,提供给用户一个统一的图形接口,支持基本... 阅读全文
posted @ 2014-06-20 17:38 d3inc 阅读(1202) 评论(0) 推荐(0) 编辑
摘要: 窗体分为两部分:客户区(Client area)和非客户区(Non-Client area)WM_PAINT消息、OnPaint()方法、GetDC()API函数都是处理窗体客户区绘制的而标题栏处于非客户区中,所以WM_PAINT消息、OnPaint()方法、GetDC()API函数都用不上GetW... 阅读全文
posted @ 2014-06-20 17:23 d3inc 阅读(3767) 评论(0) 推荐(1) 编辑
摘要: 1.根据需要,要改变nc区的大小. 响应WM_NCCALCSIZE可改变nc区的大小.关键在于lParam,msdn上说当wParam为True时, lParam为LPNCCALCSIZE_PARAMS的指定,当wParam为False时为LPRECT,做了些实验发现 只有第一次时wParam为Fa... 阅读全文
posted @ 2014-06-20 17:18 d3inc 阅读(742) 评论(0) 推荐(0) 编辑
摘要: #include "stdafx.h"#include "TestGidPlus.h"LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE ... 阅读全文
posted @ 2014-06-20 16:48 d3inc 阅读(370) 评论(0) 推荐(0) 编辑