GetDCEx 函式 (winuser.h)
GetDCEx 函式會擷取指定視窗或整個畫面之工作區 (DC) 裝置內容的句柄。 您可以在後續 GDI 函式中使用傳回的句柄,在 DC 中繪製。 裝置內容是不透明的數據結構,GDI 會在內部使用其值。
此函式是 GetDC 函式的延伸模組,可讓應用程式更充分掌控裁剪在工作區中的發生方式和是否發生。
語法
HDC GetDCEx(
[in] HWND hWnd,
[in] HRGN hrgnClip,
[in] DWORD flags
);
參數
[in] hWnd
要擷取DC之視窗的句柄。 如果此值為 NULL,GetDCEx 會擷取整個畫面的 DC。
[in] hrgnClip
可結合DC可見區域的裁剪區域。 如果 旗標的 值是DCX_INTERSECTRGN或DCX_EXCLUDERGN,則操作系統會假設區域的擁有權,並在不再需要時自動將其刪除。 在此情況下,應用程式不應該在成功呼叫 GetDCEx 之後使用或刪除區域。
[in] flags
指定 DC 的建立方式。 此參數可以是下列一或多個值。
值 | 意義 |
---|---|
|
傳回對應至視窗矩形的DC,而不是用戶端矩形。 |
|
從快取傳回 DC,而不是 OWNDC 或 CLASSDC 視窗。 基本上會覆寫CS_OWNDC和CS_CLASSDC。 |
|
使用父視窗的可見區域。 系統會忽略父系的WS_CLIPCHILDREN和CS_PARENTDC樣式位。 原點會設定為 hWnd 所識別視窗的左上角。 |
|
排除 hWnd 所識別視窗上方所有同層級視窗的可見區域。 |
|
排除 hWnd 所識別視窗下方所有子視窗的可見區域。 |
|
會忽略此旗標。 |
|
允許繪圖,即使有 有效 LockWindowUpdate 呼叫,否則會排除此視窗。 用於追蹤期間繪製。 |
|
hrgnClip 所識別的裁剪區域會從傳回DC的可見區域排除。 |
|
hrgnClip 所識別的裁剪區域會與傳回DC的可見區域交集。 |
|
保留;請勿使用。 |
|
保留;請勿使用。 |
傳回值
如果函式成功,則傳回值是指定視窗之 DC 的句柄。
如果函式失敗,則傳回值為 NULL。 hWnd 參數的值無效,會導致函式失敗。
備註
除非顯示DC屬於視窗類別,否則必須呼叫 ReleaseDC 函式,以在繪製之後釋放 DC。 此外,必須從稱為 GetDCEx 的相同線程呼叫 ReleaseDC。 DC 數目僅受限於可用的記憶體。
如果CS_CLASSDC、CS_OWNDC或CS_PARENTDC指定為註冊類別時 , 函式會傳回屬於窗口類別的DC句柄。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包括 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |