CreateDCW 関数 (wingdi.h)
CreateDC 関数は、指定した名前を使用してデバイスのデバイス コンテキスト (DC) を作成します。
構文
HDC CreateDCW(
LPCWSTR pwszDriver,
[in] LPCWSTR pwszDevice,
LPCWSTR pszPort,
[in] const DEVMODEW *pdm
);
パラメーター
pwszDriver
DISPLAY または特定のディスプレイ デバイスの名前を指定する null で終わる文字列へのポインター。 GDI ではプリンター デバイスの lpszDriver が無視されるため、印刷の場合は、lpszDriver に NULL を渡することをお勧めします。
[in] pwszDevice
印刷マネージャー (Epson FX-80 など) で示されているように、使用されている特定の出力デバイスの名前を指定する null で終わる文字列へのポインター。 プリンター モデル名ではありません。 lpszDevice パラメーターを使用する必要があります。
ディスプレイの有効な名前を取得するには、 EnumDisplayDevices を呼び出します。
lpszDriver が DISPLAY の場合、または特定のディスプレイ デバイスのデバイス名である場合、lpszDevice は NULL または同じデバイス名である必要があります。 lpszDevice が NULL の場合、プライマリ ディスプレイ デバイス用に DC が作成されます。
システムに複数のモニターがある場合、 を呼び出すと CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL)
、すべてのモニターをカバーする DC が作成されます。
pszPort
このパラメーターは無視され、 NULL に設定する必要があります。 これは、16 ビット Windows との互換性のためにのみ提供されます。
[in] pdm
デバイス ドライバーのデバイス固有の初期化データを含む DEVMODE 構造体へのポインター。 DocumentProperties 関数は、指定したデバイスに対して入力されたこの構造体を取得します。 デバイス ドライバーがユーザーによって指定された既定の初期化 (存在する場合) を使用する場合は、 pdm パラメーターを NULL にする 必要があります。
lpszDriver が DISPLAY の場合、pdm は NULL である必要があります。GDI では、ディスプレイ デバイスの現在の DEVMODE が使用されます。
戻り値
関数が成功した場合、戻り値は、指定されたデバイスの DC へのハンドルです。
関数が失敗した場合は、返される値は NULL です。
注釈
DC へのハンドルは、一度に 1 つのスレッドでのみ使用できることに注意してください。
パラメーター lpszDriver と lpszDevice の場合は、 EnumDisplayDevices を呼び出して、ディスプレイの有効な名前を取得します。
DC が不要になったら、 DeleteDC 関数を呼び出します。
lpszDriver または lpszDevice が DISPLAY の場合、CreateDC を呼び出すスレッドは作成された HDC を所有します。 このスレッドが破棄されると、 HDC は無効になります。 したがって、 HDC を作成して別のスレッドに渡し、最初のスレッドを終了すると、2 番目のスレッドは HDC を使用できなくなります。
CreateDC を呼び出してディスプレイ デバイスの HDC を作成する場合は、pdm に NULL または lpszDevice が指定するディスプレイ デバイスの現在の DEVMODE に一致する DEVMODE へのポインターを渡す必要があります。 NULL を渡し、現在のディスプレイ デバイスの DEVMODE と完全に一致しないようにすることをお勧めします。
CreateDC を呼び出してプリンター デバイスの HDC を作成すると、プリンター ドライバーによって DEVMODE が検証されます。 プリンター ドライバーが DEVMODE が無効であると判断した場合 (つまり、プリンター ドライバーは DEVMODE を変換または使用できません)、プリンター ドライバーはプリンター デバイスの HDC を作成するための既定の DEVMODE を提供します。
Icm:ICM を有効にするには、DEVMODE 構造体 (pInitData パラメーターが指す) の dmICMMethod メンバーを適切な値に設定します。
例
例については、「 イメージのキャプチャ」を参照してください。
注意
wingdi.h ヘッダーは、CreateDC をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wingdi.h (Windows.h を含む) |
Library | Gdi32.lib |
[DLL] | Gdi32.dll |