createDCA 函式 (wingdi.h)

CreateDC 函式會使用指定的名稱,為裝置建立裝置 (DC) 。

語法

HDC CreateDCA(
       LPCSTR         pwszDriver,
  [in] LPCSTR         pwszDevice,
       LPCSTR         pszPort,
  [in] const DEVMODEA *pdm
);

參數

pwszDriver

指定 DISPLAY 或特定顯示裝置名稱之 Null 終止字元字串的指標。 若要列印,建議您將 NULL 傳遞給 lpszDriver ,因為 GDI 會忽略印表機裝置 的 lpszDriver

[in] pwszDevice

指定所使用之特定輸出裝置名稱的 Null 終止字元字串指標, (例如,Epson FX-80) 所示。 它不是印表機型號名稱。 必須使用 lpszDevice 參數。

若要取得顯示的有效名稱,請呼叫 EnumDisplayDevices

如果 lpszDriver 是 DISPLAY 或特定顯示裝置的裝置名稱, 則 lpszDevice 必須是 NULL 或相同的裝置名稱。 如果 lpszDeviceNULL,則會為主要顯示裝置建立 DC。

如果系統上有多個監視器,則呼叫 CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL) 會建立涵蓋所有監視器的DC。

pszPort

此參數會被忽略,而且應該設定為 NULL。 它僅適用於與16位 Windows 的相容性。

[in] pdm

DEVMODE 結構的指標,其中包含裝置驅動程式的裝置特定初始化數據。 DocumentProperties 函式會擷取填入指定裝置的這個結構。 如果設備驅動器要使用預設初始化,則 pdm 參數必須是 NULL,如果使用者指定任何) , (則為 NULL

如果 lpszDriverDISPLAY,pdm 必須是 NULL;然後,GDI 會使用顯示裝置目前的 DEVMODE

傳回值

如果函式成功,則傳回值是指定裝置之 DC 的句柄。

如果函式失敗,則傳回值為 NULL

備註

請注意,DC 的句柄一次只能由單一線程使用。

針對 參數 lpszDriverlpszDevice,呼叫 EnumDisplayDevices 以取得顯示的有效名稱。

當您不再需要 DC 時,請呼叫 DeleteDC 函式。

如果 lpszDriverlpszDevice 是 DISPLAY,則呼叫 CreateDC 的線程會擁有所建立的 HDC 。 當此線程終結時, HDC 已不再有效。 因此,如果您建立 HDC 並將它傳遞至另一個線程,則結束第一個線程,第二個線程將無法使用 HDC

當您呼叫 CreateDC 來建立顯示裝置的 HDC 時,您必須傳遞至NULLDEVMODE 的指標,該指標符合 lpszDevice 所指定之顯示裝置的目前 DEVMODE。 我們建議傳遞 NULL ,而不是嘗試完全符合目前顯示裝置的 DEVMODE

當您呼叫 CreateDC 來建立印表機裝置的 HDC 時,印表機驅動程式會驗證 DEVMODE。 如果印表機驅動程式判斷 DEVMODE 在 (無效,印表機驅動程式無法轉換或取用 DEVMODE) ,印表機驅動程式會提供預設 的 DEVMODE 來建立印表機裝置的 HDC。

Icm:若要啟用 ICM,請將 pInitData 參數所指向之 DEVMODE (結構的 dmICMMethod 成員設定為適當的值) 。

範例

如需範例,請參閱 擷取影像

注意

wingdi.h 標頭會定義 CreateDC 作為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 wingdi.h (包含 Windows.h)
程式庫 Gdi32.lib
Dll Gdi32.dll

另請參閱

DEVMODE

DOCINFO

DeleteDC

裝置內容函式

裝置內容概觀

DocumentProperties

EnumDisplayDevices

多個顯示監視器

StartDoc