CMetaFileDC クラス
イメージやテキストを自由に作成するための一連のグラフィック デバイス インターフェイス (GDI) コマンドを含む Windows のメタファイルを実装します。
class CMetaFileDC : public CDC
解説
Windows のメタファイルを実装するには、まず CMetaFileDC オブジェクトを構築します。 CMetaFileDC コンストラクターを起動し、その後 Create メンバー関数を呼び出し、Windows メタファイル デバイス コンテキストを作成し、それを CMetaFileDC オブジェクトに結び付けます。
次に繰り返し実行しようとする CDC GDI コマンドを CMetaFileDC オブジェクトに送信します。 MoveTo と LineTo のような出力に関する GDI コマンドだけが使用可能です。
メタファイルに希望するコマンドを送った後は、Close メンバー関数を呼び出して、メタファイル デバイス コンテキストを閉じ、メタファイル ハンドルを返します。 その後、CMetaFileDC オブジェクトを破棄します。
これで CDC::PlayMetaFile 関数はメタファイル ハンドルを使って、メタファイルを繰り返し再生できるようになります。 また、メタファイルをディスクにコピーする CopyMetaFile などの Windows 関数を使ってメタファイルを操作することも可能です。
不要になったメタファイルは Windows 関数の DeleteMetaFile を使ってメモリから削除します。
出力に関する呼び出し以外に、GetTextExtent 関数のような GDI 属性に関する呼び出しを操作する CMetaFileDC オブジェクトを実装することもできます。 このようなメタファイルは融通性があり、一般的な GDI コードを容易に再利用できます。一般的な GDI コードでは、通常出力と、属性に関する呼び出しが混在します。 CMetaFileDC クラスは、CDC クラスから m_hDC と m_hAttribDC の 2 つのデバイス コンテキストを継承します。 m_hDC デバイス コンテキストは、CDC GDI 出力に関する呼び出しのすべてを処理します。m_hAttribDC デバイス コンテキストは、CDC GDI の属性に関する呼び出しのすべてを処理します。 通常、2 つのデバイス コンテキストは同一のデバイスに割り当てられます。 通常、CMetaFileDC では、属性に関する DC は既定で NULL に設定されます。
次に画面、プリンター、またはメタファイル以外のデバイスを指すデバイス コンテキストを作成します。その後 SetAttribDC メンバー関数を呼び出して、今作成したデバイス コンテキストを m_hAttribDC に結び付けます。 情報に関する GDI 呼び出しはこの新しい m_hAttribDC に送られます。 出力に関する GDI 呼び出しは、メタファイルを表す m_hDC に送られます。
CMetaFileDC の詳細については、「デバイス コンテキスト」を参照してください。
必要条件
**ヘッダー:**afxext.h