2

シンプルな幾何学図形で円柱を描いてもらいました。例えば:

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);

すべての図形を 1 つの複雑なオブジェクトに結合して使用するにはどうすればよいですか? たぶん、それを行うか、独自の関数を作成する関数がいくつかありますか?

4

1 に答える 1

1

このような複雑なオブジェクトは、おそらくメタファイルを使用して構築するのが最適です (生の GDI を使用したい場合)。

CreateEnhMetafileを使用してメタファイルを作成することから始めます。これにより、描画できる仮想 DC が得られます。次に、GDI 呼び出しを使用して DC に描画します。描画が完了したら、 CloseEnhMetaFile を呼び出し続いてGetEnhMetaFileBitsを呼び出して、メタファイルをバッファーにコピーします。

メタファイルを描画するには、メタファイルをバッファーに取得し、SetEnhMetaFileBits を呼び出しメタファイル ハンドルを作成し、PlayEnhMetaFile を呼び出し描画します。変換を設定して、メタファイルを平行移動/せん断/ズームできます。

于 2013-09-28T02:35:27.050 に答える