在我理解看来,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