顯示裝置內容
應用程式會呼叫BeginPaint、GetDC 或 GetDCEx函式,並識別對應輸出出現的視窗,以取得顯示 DC。 一般而言,只有在應用程式必須在工作區中繪製時,才會取得顯示 DC。 不過,可以藉由呼叫GetWindowDC函式來取得視窗裝置內容。 當應用程式完成繪圖時,它必須呼叫 EndPaint 或 ReleaseDC 函式來釋放 DC。
視訊顯示器有五種類型的 DC:
- 類別
- 通用
- 私人
- 時間範圍
- Parent
類別裝置內容
類別裝置內容 受到嚴格支援,以便與 16 位版本的 Windows 相容。 撰寫應用程式時,請避免使用類別裝置內容;請改用私人裝置內容。
常見的裝置內容
常見的裝置內容 會顯示系統在特殊快取中維護的 DC。 常見的裝置內容用於執行不常繪製作業的應用程式。 在系統傳回 DC 控制碼之前,它會使用預設物件、屬性和模式,初始化通用裝置內容。 除非呼叫其中一個 GDI 函式來選取新的物件、變更現有物件的屬性,或選取新的模式,否則應用程式執行的任何繪圖作業都會使用這些預設值。
因為只有有限的常見裝置內容存在,所以應用程式應該在完成繪圖之後釋出它們。 當應用程式釋放一般裝置內容時,預設資料的任何變更都將遺失。
私人裝置內容
私人裝置內容 會顯示 DC,不同于常見的裝置內容,即使應用程式釋放預設資料,仍會保留預設資料的任何變更。 私人裝置內容用於執行許多繪圖作業的應用程式,例如電腦輔助設計 (CAD) 應用程式、桌面發佈應用程式、繪圖和繪製應用程式等等。 私人裝置內容不是系統快取的一部分,因此在使用之後不需要釋放。 系統會在該類別的最後一個視窗終結之後,自動移除私人裝置內容。
當應用程式初始化WNDCLASS結構的樣式成員並呼叫RegisterClass函式時,會先指定CS_OWNDC視窗類別樣式,以建立私人裝置內容。 (如需視窗類別的詳細資訊,請參閱 Window Classs.)
使用CS_OWNDC樣式建立視窗之後,應用程式可以呼叫 GetDC、 GetDCEx或 BeginPaint 函式一次,以取得識別私人裝置內容的控制碼。 應用程式可以繼續使用這個控制碼 (和相關聯的 DC) ,直到刪除使用此類別建立的視窗為止。 系統會保留繪圖物件及其屬性或圖形模式的任何變更,直到刪除視窗為止。
視窗裝置內容
視窗裝置內容可讓應用程式在視窗中的任何位置繪製,包括非工作區。 視窗裝置內容通常由處理具有自訂非工作區之視窗 的WM_NCPAINT 和 WM_NCACTI加值稅E 訊息的應用程式使用。 不建議針對任何其他用途使用視窗裝置內容。 如需詳細資訊;請參閱 GetWindowDC。
父裝置內容
父裝置內容可讓應用程式將設定視窗裁剪區域所需的時間降到最低。 應用程式通常會使用父裝置內容來加速控制視窗的繪圖,而不需要私人或類別裝置內容。 例如,系統會使用父裝置內容進行按鈕和編輯控制項。 父裝置內容僅供子視窗使用,永遠不會搭配最上層或快顯視窗使用。 如需詳細資訊;請參閱 父顯示裝置內容。