VC绘图/游戏简易教程--16:设备上下文句柄(Windows 编程入门2)
2011-3-2 ~ 2021-5-28
(0)
教程总目录:https://codebus.cn/bestans/post/concise-lesson-contents(里面包括VC下的graphics.h的配置方法)
注:学习本节前,请自备 MSDN,以便查阅 Windows GDI 函数。
对于 Windows GDI 中的绘图函数,操作目标通常是 DC(Device Context),因此需要传入一个 DC 的句柄,数据类型为 HDC(Handle of Device Context)。用 GetImageHDC() 函数可以获取 EasyX 的绘图窗口或 IMAGE 对象的句柄,然后就可以使用 Windows GDI 函数进行绘图操作。看以下示例:
#include <graphics.h>
#include <conio.h>
int main()
{
// 初始化绘图窗口,并获取 HDC 句柄
initgraph(640, 480);
HDC hdc = GetImageHDC();
// 以下是标准 Windows GDI 操作画一条线(相关语句,请查阅 MSDN)
MoveToEx(hdc, 100, 100, NULL);
LineTo(hdc, 200, 200);
// 标准 Windows GDI 操作结束
// 按任意键返回
_getch();
closegraph();
return 0;
}
还可以针对 IMAGE 对象使用 GDI 绘图函数,看下面这个例子:
#include <graphics.h>
#include <conio.h>
int main()
{
// 初始化绘图窗口
initgraph(640, 480);
// 创建 300x300 的 IMAGE 对象,并获取其 HDC 句柄
IMAGE img(300, 300);
HDC hdc = GetImageHDC(&img);
// 以下是标准 Windows GDI 操作画一条线(相关语句,请查阅 MSDN)
MoveToEx(hdc, 100, 100, NULL);
LineTo(hdc, 200, 200);
// 标准 Windows GDI 操作结束
// 将 img 贴到绘图窗口上:
putimage(0, 0, &img);
// 按任意键返回
_getch();
closegraph();
return 0;
}
注意:
- 这次的内容虽然少,但是 Windows GDI 的内容相当多,所以,完成本节的学习还是很不容易的。
- Windows GDI 并没有设置颜色这样的函数,需要创建画笔(画刷)并选入画笔(画刷),并且在不用的时候记得删除。Windows GDI 相当的丰富,这里就不多做介绍了,感兴趣的请参考相关书籍。
- 至于作业,其实从前几讲开始就没必要弄什么作业了,能坚持看下来的,相信都会自觉的写一些东西。
添加评论
取消回复