次の方法で共有


COleControl::GetDC

更新 : 2007 年 11 月

ウィンドウなしのオブジェクトが、画面 (または互換性のある) デバイス コンテキストをコンテナから取得する手段を提供します。

CDC* GetDC(
   LPCRECT lprcRect = NULL,
      DWORD dwFlags = OLEDC_PAINTBKGND 
);

パラメータ

  • lprcRect
    ウィンドウなしのコントロールで再描画する四角形へのポインタ。コントロールのクライアント座標で示されます。NULL は、オブジェクト全体を意味します。

  • dwFlags
    デバイス コンテキストの描画属性。以下のいずれかです。

    • OLEDC_NODRAW   オブジェクトはデバイス コンテキストを使った描画を行わずに、ディスプレイ デバイスに関する情報の取得だけを行います。コンテナは、ウィンドウの DC をそれ以上処理しないで渡します。

    • OLEDC_PAINTBKGND   DC を返す前にコンテナが背景を描画することを要求します。DC が透明な背景の領域を再描画する必要がある場合、オブジェクトはこのフラグを使用します。

    • OLEDC_OFFSCREEN   オブジェクトはまずオフ画面ビットマップに描画し、続いてそれを画面にコピーすることをコンテナに通知します。実行しようとしている描画処理によって、画面がちらつく場合、このフラグを使用します。コンテナが、この要求に答えるかどうかは自由です。しかし、このフラグが設定されていない場合、コンテナはオン画面 DC を返す必要があります。これにより、オブジェクトは選択の表示のような直接画面操作を XOR 操作により実行できます。

戻り値

正常終了した場合は、コンテナの CWnd クライアント領域のディスプレイ デバイス コンテキストへのポインタを返します。それ以外の場合は、NULL を返します。以降の GDI 関数でディスプレイ デバイス コンテキストを使用して、コンテナ ウィンドウのクライアント領域を描画できます。

解説

ReleaseDC メンバ関数が、描画後にコンテキストを解放するために呼び出されます。GetDC を呼び出したとき、オブジェクトは描画する四角形をオブジェクト自身のクライアント座標で渡します。GetDC は、これらの座標をコンテナのクライアント領域の座標に変換します。オブジェクトは、そのクライアント領域四角形よりも大きな四角形を要求できません。この大きさは GetClientRect で取得できます。これによって、オブジェクトが予期しない場所で不用意に描画されないようにします

必要条件

ヘッダー : afxctl.h

参照

参照

COleControl クラス

階層図

COleControl::ReleaseDC

その他の技術情報

COleControl のメンバ