我的 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