CDC クラス

更新 : 2007 年 11 月

デバイス コンテキスト オブジェクトのクラスを定義します。

class CDC : public CObject

解説

CDC オブジェクトには、ディスプレイやプリンタのようなデバイス コンテキストで動作するメンバ関数や、ウィンドウのクライアント領域に関連付けられたディスプレイ コンテキストで動作するメンバ関数があります。

描画は CDC オブジェクトのメンバ関数を使って行います。CDC クラスにはデバイス コンテキストの操作に関するメンバ関数があります。描画ツールの操作、タイプ セーフなグラフィックス デバイス インターフェイス (GDI: Graphics Device Interface) オブジェクトの選択、および色とパレットの操作を行うメンバ関数です。また、描画属性の取得または設定、マップ、ビューポートの操作、ウィンドウの範囲の操作、座標変換、領域の操作、クリッピング、線の描画、単純な図形描画、楕円の描画、および多角形の描画を行うメンバ関数もあります。さらに、テキストの描画、フォントの操作、プリンタ エスケープの使用、スクロール操作、およびメタファイルの再生を行うメンバ関数もあります。

CDC オブジェクトを使うには、まずオブジェクトを構築します。次に、デバイス コンテキストやディスプレイ コンテキストを使うための Windows 関数に相当するメンバ関数を呼び出します。

fxhhde73.alert_note(ja-jp,VS.90).gifメモ :

Windows 95/98 では、すべての画面座標を 16 ビット以内にする必要があります。CDC メンバ関数に渡す int 値は -32768 から 32767 の範囲内の値にしてください。

MFC ライブラリでは、特別な用途にいくつかのクラスを CDC から派生しています。CPaintDC クラスは、BeginPaint の呼び出しと EndPaint の呼び出しをカプセル化します。CClientDC クラスは、ウィンドウのクライアント領域に関連付けられたディスプレイ コンテキストを管理します。CWindowDC クラスは、フレームやコントロールを含むウィンドウ全体に関連付けられたディスプレイ コンテキストを管理します。CMetaFileDC クラスは、メタファイルに割り当てられたデバイス コンテキストを関連付けます。

CDC には、ウィンドウからレイアウトを継承しないデバイス コンテキストのレイアウトを反転させる GetLayoutSetLayout の 2 つのメンバ関数が用意されています。右から左への文字の方向は、アラビア語やヘブライ語など、ヨーロッパの標準とは異なる文字レイアウトを使う文化圏のために作成されたアプリケーションで必要です。

CDC には、m_hDCm_hAttribDC の 2 つのデバイス コンテキストがあります。CDC オブジェクトの構築時には、これらは同じデバイスを参照します。CDC は、すべての出力 GDI 呼び出しを m_hDC に、大部分の属性 GDI 呼び出しを m_hAttribDC に指定します。たとえば、GetTextColor は属性呼び出しであり、SetTextColor は出力呼び出しです。

CDC の内部では 2 つのデバイス コンテキストを使用します。たとえば、実装した CMetaFileDC オブジェクトはメタファイルに出力し、物理デバイスから属性を読み込みます。印刷プレビューも同じように内部で実装されています。アプリケーションからもこれらと同じ方法で 2 つのデバイス コンテキストを使用できます。

m_hDCm_hAttribDC の両方のデバイス コンテキストからテキスト メトリックの情報が必要なときがあります。次にこの機能をもつ、対をなす関数を示します。

m_hAttribDC 使用

m_hDC 使用

GetTextExtent

GetOutputTextExtent

GetTabbedTextExtent

GetOutputTabbedTextExtent

GetTextMetrics

GetOutputTextMetrics

GetCharWidth

GetOutputCharWidth

CDC の詳細については、「デバイス コンテキスト」を参照してください。

必要条件

ヘッダー : afxwin.h

参照

参照

CObject クラス

階層図

CPaintDC クラス

CWindowDC クラス

CClientDC クラス

CMetaFileDC クラス

その他の技術情報

CDC のメンバ