在我理解看来,Graphics是一个device context和你的drawing conetent之间的一个中介。它存储了device context的相关属性,以及drawing content的属性。这样,它就能用自己的方法把drawing content“映射”到device content 之上。
GDI中的绘图工作是直接在device context之上进行的。在GDI—+中,你因该在device context之上再建立一个graphics,然后调用graphics的相关方法完成绘图等工作。
Graphics类有四个构造函数:
static Graphics* FromHDC(IN HDC hdc) { return new Graphics(hdc); } static Graphics* FromHDC(IN HDC hdc, IN HANDLE hdevice) { return new Graphics(hdc, hdevice); } static Graphics* FromHWND(IN HWND hwnd, IN BOOL icm = FALSE) { return new Graphics(hwnd, icm); } static Graphics* FromImage(IN Image *image) { return new Graphics(image); }
构造函数1从image对象创建一个Graphics类。这种方式允许你在打开某张,或者生成某张,位图之后,应用Grapgics的方法对改位图进行操作。
构造函数2从一个传统的HDC获取一个Graphics对象,把传统的在HDC完成的操作接手过来。
构造函数3允许你创建一个绑定于某个特定设备的Graphics类实例。
构造函数4允许你直接从特定的窗口hwnd直接获取一个Graphics类实例。
转载地址:http://www.cppblog.com/dingding/archive/2008/06/27/54795.html