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 或相同的裝置名稱。 如果 lpszDevice 為 NULL,則會為主要顯示裝置建立 DC。
如果系統上有多個監視器,則呼叫 CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL)
會建立涵蓋所有監視器的DC。
pszPort
此參數會被忽略,而且應該設定為 NULL。 它僅適用於與16位 Windows 的相容性。
[in] pdm
DEVMODE 結構的指標,其中包含裝置驅動程式的裝置特定初始化數據。 DocumentProperties 函式會擷取填入指定裝置的這個結構。 如果設備驅動器要使用預設初始化,則 pdm 參數必須是 NULL,如果使用者指定任何) , (則為 NULL 。
如果 lpszDriver 為 DISPLAY,pdm 必須是 NULL;然後,GDI 會使用顯示裝置目前的 DEVMODE。
傳回值
如果函式成功,則傳回值是指定裝置之 DC 的句柄。
如果函式失敗,則傳回值為 NULL。
備註
請注意,DC 的句柄一次只能由單一線程使用。
針對 參數 lpszDriver 和 lpszDevice,呼叫 EnumDisplayDevices 以取得顯示的有效名稱。
當您不再需要 DC 時,請呼叫 DeleteDC 函式。
如果 lpszDriver 或 lpszDevice 是 DISPLAY,則呼叫 CreateDC 的線程會擁有所建立的 HDC 。 當此線程終結時, HDC 已不再有效。 因此,如果您建立 HDC 並將它傳遞至另一個線程,則結束第一個線程,第二個線程將無法使用 HDC。
當您呼叫 CreateDC 來建立顯示裝置的 HDC 時,您必須傳遞至NULL 或 DEVMODE 的指標,該指標符合 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 |