次の方法で共有


デバイス コンテキスト

デバイス コンテキストは、ディスプレイやプリンターなどのデバイスの描画属性に関する情報を含む Windows データ構造です。 すべての描画呼び出しは、線、図形、およびテキストを描画するための Windows API をカプセル化するデバイス コンテキスト オブジェクトを介して行われます。 デバイス コンテキストを使用すると、Windows でのデバイスに依存しない描画が可能になります。 デバイス コンテキストは、画面、プリンター、またはメタファイルに描画するために使用できます。

CPaintDC オブジェクトは、Windows の一般的なイディオムをカプセル化し、 BeginPaint 関数を呼び出し、デバイス コンテキストで描画してから、 EndPaint 関数を呼び出します。 CPaintDCコンストラクターはBeginPaintを呼び出し、デストラクターはEndPaintを呼び出します。 簡略化されたプロセスでは、 CDC オブジェクトを作成し、描画してから、 CDC オブジェクトを破棄します。 フレームワークでは、このプロセスの多くが自動化されています。 特に、 OnDraw 関数は既に準備済みの CPaintDC ( OnPrepareDCを介して) 渡され、単純にそれに描画されます。 フレームワークによって破棄され、基になるデバイス コンテキストは、 OnDraw 関数の呼び出しから戻ると Windows にリリースされます。

CClientDC オブジェクトは、ウィンドウのクライアント領域のみを表すデバイス コンテキストの操作をカプセル化します。 CClientDC コンストラクターはGetDC関数を呼び出し、デストラクターは ReleaseDC 関数を呼び出します。 CWindowDC オブジェクトは、フレームを含むウィンドウ全体を表すデバイス コンテキストをカプセル化します。

CMetaFileDC オブジェクトは、描画を Windows メタファイルにカプセル化します。 OnDrawに渡されるCPaintDCとは異なり、この場合は自分で OnPrepareDC を呼び出す必要があります。

マウス描画

フレームワーク プログラムのほとんどの描画 (したがって、ほとんどのデバイス コンテキスト作業) は、ビューの OnDraw メンバー関数で行われます。 ただし、デバイス コンテキスト オブジェクトは他の目的で引き続き使用できます。 たとえば、ビュー内のマウスの動きに関する追跡フィードバックを提供するには、 OnDraw が呼び出されるのを待たずにビューに直接描画する必要があります。

このような場合は、 CClientDC デバイス コンテキスト オブジェクトを使用してビューに直接描画できます。

詳しく知りたいこと

こちらも参照ください

ウィンドウ オブジェクト