CreateDC(A)

指定されたデバイスのデバイスコンテキストを、指定された名前で作成します。

HDC CreateDCA(
    PCTSTR pszDriver,         // driver name
    PCTSTR pszDevice,         // device name
    PCTSTR pszOutput,         // NULL
    CONST DEVMODE* pInitData  // optional data
);

GDI32.DLL

引数

pszDriver

Windows 9x/Me: 0 (NULL) または"WINSPL16"(プリントプロバイダ)を指定します。また、ディスプレイのデバイスコンテキストのハンドルを取得するには、文字列"DISPLAY"または特定のディスプレイデバイス名を表す文字列へのポインタを指定します。この場合は、他の引数をすべて0 (NULL) にしなければなりません。

Windows NT 4.0: ディスプレイのデバイスコンテキストのハンドルを取得するには、文字列"DISPLAY"へのポインタを指定します。プリンタのデバイスコンテキストのハンドルを取得するには、プリントプロバイダの名前(通常は"WINSPOOL")を表す文字列へのポインタを指定します。この場合は、他の引数をすべて0 (NULL) にしなければなりません。

Windows 2000/XP: ディスプレイのデバイスコンテキストのハンドルを取得するには、文字列"DISPLAY"または特定のディスプレイデバイス名を表す文字列へのポインタを指定します。プリンタのデバイスコンテキストのハンドルを取得するには、プリンタドライバの名前(通常は"WINSPOOL")を表す文字列へのポインタを指定します。この場合は、他の引数をすべて0 (NULL) にしなければなりません。

pszDevice

使用する特定の出力デバイス名を表す文字列へのポインタを指定します。このデバイス名は、プリンタモデル名ではなく、プリントマネージャで表示されるように(例えば「Epson FX-80」などと)指定します。

有効なディスプレイデバイス名を取得するには、EnumDisplayDevices関数を呼び出します。

pszDriverに文字列"DISPLAY"または特定のディスプレイデバイス名を指定した場合は、pszDeviceには同じデバイス名文字列へのポインタもしくは0 (NULL) を指定しなければなりません。pszDriver0 (NULL) を指定すると、デバイスドライバはプライマリディスプレイデバイスに対して作成されます。

Windows NT 3.51/NT 4.0: ディスプレイデバイスは1つ(プライマリディスプレイ)のみです。pszDeviceには0 (NULL) にしなければなりません。

Windows 2000以降: システム上に複数のモニタが存在する場合、pszDriverに文字列"DISPLAY"を指定し、他の引数をすべて0 (NULL) を指定すると、すべてのモニタをカバーするデバイスコンテキストが作成されます。

pszOutput

このパラメータは無視されます。0 (NULL) を指定します。

pInitData

デバイスドライバに対するデバイス固有の初期化データを格納したDEVMODE構造体へのポインタを指定します。デフォルトの初期化を使用する場合は0 (NULL) を指定します。

pszDriverに文字列"DISPLAY"を指定した場合は、には0 (NULL) を指定しなければなりません。ディスプレイデバイスの現在のDEVMODE構造体の情報が使用されます。

戻り値

成功すると指定したデバイスに対するデバイスコンテキストのハンドルが返ります。

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

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

解説

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

Windows 2000/XP: pszDriverpszDeviceに文字列"DISPLAY"を指定した場合、作成されたデバイスコンテキストのハンドルは呼び出しスレッドにより所有されます。このスレッドが破棄されると、そのハンドルは無効となります。

対応情報

Windows 95 以降 / Windows NT 3.1 以降