CreateCompatibleDC

指定されたデバイスコンテキストに関連するデバイスと互換性のあるメモリデバイスコンテキストを作成します。

HDC CreateCompatibleDC(
    HDC hDC       // デバイスコンテキストのハンドル
);

GDI32.DLL

引数

hDC

既存のデバイスコンテキストのハンドルを指定します。このデバイスコンテキストに関連するデバイスと互換性のあるメモリデバイスコンテキストを作成します。0 (NULL) を指定すると、アプリケーションの現在のスクリーンと互換性のあるメモリデバイスコンテキストが作成されます。

戻り値

成功すると作成したメモリデバイスコンテキストのハンドルが返ります。

失敗すると0 (NULL) が返ります。

Windows NT/2000/XP: 拡張エラー情報を取得するには、GetLastError関数を使います。

解説

メモリデバイスコンテキストが作成されると、最初は1×1ピクセルのモノクロビットマップが選択された状態になっています。アプリケーションは、メモリデバイスコンテキストを使用して描画操作を行なう前に、正しいサイズのビットマップをデバイスコンテキストに選択しなければなりません。デバイスコンテキストに選択するビットマップを作成するには、CreateCompatibleBitmap関数を使用して必要なサイズと色形式を指定します。

メモリデバイスコンテキストが作成されると、すべての属性は標準のデフォルト値に設定されます。メモリデバイスコンテキストでは、アプリケーションは標準のデバイスコンテキストと同様に属性の設定や取得、ペン・ブラシ・リージョンの選択を行なうことができます。

デバイスコンテキストが不要になったらDeleteObject関数で削除しなければなりません。

Windows NT/2000/XP: hDCパラメータに0 (NULL) を指定すると、呼び出しスレッドが作成されたデバイスコンテキストのハンドルを所有します。このスレッドが破棄されると、そのデバイスコンテキストのハンドルは無効になります。そのため、あるスレッドがそのようなデバイスコンテキストを作成して別のスレッドに渡し、その後に最初のスレッドが終了した場合には、2番目のスレッドはそのハンドルを使用することができなくなります。

対応情報

Windows 95 以降 / Windows NT 3.1 以降