我用简单的几何图形绘制圆柱体。 例如:
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);
如何将一个复杂对象中的所有数字组合起来并使用它? 也许有一些功能可以做到这一点或创建我自己的功能?
答案 0 :(得分:2)
这样的复杂对象可能最好用metafiles构建(假设你想坚持使用原始GDI)。
首先创建一个带有CreateEnhMetafile的图元文件,它会为您提供一个可以绘制的虚拟DC。然后使用GDI调用将其绘制到DC中。完成绘图后,请调用CloseEnhMetaFile,然后调用GetEnhMetaFileBits将图元文件复制到缓冲区中。
要绘制元文件,请将元文件检索到缓冲区,调用SetEnhMetaFileBits创建元文件句柄,然后调用PlayEnhMetaFile绘制它。您可以设置转换以转换/剪切/缩放图元文件。