私の Windows C++ プログラムは EMF ( Enhanced Metafile Format ) を作成して、クリップボード、Word、および Excel にエクスポートします。
次のコード例は、キャンバスが 25x25 (注: 私のラップトップの画面解像度は 3600x1800) であるのに対し、12x12 のみの EMF 長方形 (幅 = 高さ = 25) を生成します。他の画面解像度では、同様のスケーリング異常が発生します (大きすぎる/小さすぎる)。グラフィック描画のスケーリングは、解像度の関数として設定する必要があるようです。ここでの知識には明らかにギャップがあります...どんな助けも大歓迎です。
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