デバイス コンテキスト
デバイス コンテキストは表示やプリンターなどのデバイスの描画の属性についての情報を含むウィンドウのデータ構造です。すべての描画の呼び出しは行、グラフィックスとテキストを描画するための Windows API をカプセル化するデバイスコンテキスト オブジェクトを介して行われます。Windows のデバイス コンテキストの割り当てのデバイスに依存しない描画。画面に、プリンター、またはメタファイルに描画に使用するデバイス コンテキストができます。
CPaintDC のオブジェクトはデバイス コンテキストの BeginPaint 関数、および描画を呼び出す、 EndPaint の関数を呼び出す Windows に共通の表現をカプセル化します。必要に CPaintDC のコンストラクター呼び出し BeginPaint 、デストラクターの呼び出し EndPaint。単純プロセスは CDC のオブジェクトを作成して描画し、次に CDC のオブジェクトを破棄します。フレームワークでは、このプロセスの多くが自動化されます。特に、 OnDraw の関数は既に準備する CPaintDC ( OnPrepareDCによって)渡され、単に描画します。これは、フレームワークによって破棄され、基になるデバイス コンテキストは呼び出しの OnDraw の関数の戻り、 Windows に解放されます。
CClientDC のオブジェクトはウィンドウのクライアント領域だけを表すデバイス コンテキストの使用をカプセル化します。CClientDC のコンストラクター呼び出し GetDC の関数、デストラクターは ReleaseDC 関数を呼び出しますします。CWindowDC のオブジェクトは、ウィンドウを表すゾーンを含むデバイス コンテキストをカプセル化します。
CMetaFileDC のオブジェクトがウィンドウのメタファイルに描画をカプセル化します。OnDrawに渡される CPaintDC とは対照的に、この場合 OnPrepareDC をダイヤルします。
マウス描画
フレームワーク プログラムのほとんどの描画は、ビューの OnDraw のメンバー関数で —このため、ほとんどの作業デバイスコンテキスト —実行されます。ただし、デバイスコンテキスト オブジェクトを他の用途に使用できます。たとえば、ビューのマウス移動の追跡のフィードバックを提供するために、呼び出される待機する OnDraw なしにビューに直接描画する必要があります。
このような場合は、ビューに直接描画に CClientDC のデバイスコンテキスト オブジェクトを使用できます。