CMetaFileDC クラス
更新 : 2007 年 11 月
イメージやテキストを自由に作成するための一連のグラフィック デバイス インターフェイス (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
スマート デバイス開発者のためのメモ
このクラスは、スマート デバイス プロジェクトではサポートされません。