【发布时间】:2016-09-23 09:47:04
【问题描述】:
我的 windows c++ 程序创建 EMF(增强的元文件格式)以导出到剪贴板、word 和 excel。
以下示例代码生成一个只有 12x12 的 EMF 矩形 (width=height=25),而画布为 25x25(注意:我的笔记本电脑的屏幕分辨率为 3600x1800)。 在其他屏幕分辨率下,也会出现类似的缩放异常(太大/太小)。 看起来图形绘图的缩放需要设置为分辨率的函数。 我显然在我的知识方面存在差距......感谢任何帮助。
HDC ref_dc = GetDC(NULL);
Rect r(0, 0, 25, 25);
Metafile* emf = new Metafile(ref_dc, r, MetafileFrameUnitPixel, EmfTypeEmfPlusDual, L"Drawing");//to HDC
Graphics* g = new Graphics(emf);
//draw a simple box
Gdiplus::Pen* pen = new Pen(Color(0, 255, 0), 1.0f);
pen->SetDashStyle(DashStyleSolid);
pen->SetLineCap(LineCapRound, LineCapRound, DashCapFlat);
g->DrawRectangle(pen, r); // DrawMyObject(g);
// code here to put on clipboard
【问题讨论】:
-
似乎 EMF 是错误的标签,因为它被分配给了 Eclipse 建模框架。