如何将简单的几何图形组合在一个对象中

How combine simple geometric figures in one object?

本文关键字:组合 一个对象 几何图形 简单      更新时间:2023-10-16

我用简单的几何图形绘制圆柱体。例如:

PAINTSTRUCT ps;
    hdc=BeginPaint(hWnd,&ps);
    pen1=CreatePen(PS_SOLID,3,RGB(0,0,0));
    SelectObject(hdc,pen1);
    Arc(hdc,10,10,200,100,40,40,40,40);
    MoveToEx(hdc,10,50,NULL);
    LineTo(hdc,10,200);
    MoveToEx(hdc,199,50,NULL);
    LineTo(hdc,199,200);
    Arc(hdc,10,150,200,250,10,199,200,200);
    DeleteObject(pen1);
    EndPaint(hWnd,&ps);

如何将所有图形组合在一个复杂对象中并使用它?也许有一些函数可以做到这一点或创建我自己的函数?

像这样的复杂对象可能最好使用图元文件构建(假设你想坚持使用原始 GDI)。

首先使用 CreateEnhMetafile 创建一个图元文件,它为您提供了一个可以绘制的虚拟 DC。 然后,使用 GDI 调用绘制到 DC。 绘制完成后,调用 CloseEnhMetaFile,然后调用 GetEnhMetaFileBits 将图元文件复制到缓冲区中。

若要绘制图元文件,

请将图元文件检索到缓冲区中,调用 SetEnhMetaFileBits 以创建图元文件句柄,然后调用 PlayEnhMetaFile 来绘制它。 您可以设置变换来平移/剪切/缩放图元文件。

相关文章: