共用方式為


類別顯示裝置內容

藉由使用 類別裝置內容,應用程式可以使用屬於指定類別之每個視窗的單一顯示裝置內容。 類別裝置內容通常用於使用相同的屬性值繪製的控制視窗。 如同私人裝置內容,類別裝置內容可將準備裝置內容以繪製所需的時間降到最低。

如果視窗屬於具有CS_CLASSDC樣式的視窗類別,則系統會提供視窗的類別裝置內容。 系統會在建立屬於 類別的第一個視窗時建立裝置內容,然後針對類別中所有後續建立的視窗使用相同的裝置內容。 一開始,類別裝置內容的屬性預設值與通用裝置內容相同,但應用程式可以隨時修改這些屬性。 系統會保留所有變更,但裁剪區域和裝置來源除外,直到類別中的最後一個視窗已終結為止。 針對一個視窗所做的變更會套用至該類別中的所有視窗。

應用程式可以在建立第一個視窗之後,隨時使用 GetDC 函式來擷取類別裝置內容的控制碼。 應用程式可以保留並使用控制碼,而不釋放它,因為類別裝置內容不是顯示裝置內容快取的一部分。 如果應用程式在同一個視窗類別中建立另一個視窗,應用程式必須再次擷取類別裝置內容。 擷取裝置內容會設定新視窗的正確裝置來源和裁剪區域。 應用程式擷取 類別中新視窗的類別裝置內容之後,裝置內容就無法再用來在原始視窗中繪製,而不需要再次擷取該視窗。 一般而言,每次必須在視窗中繪製時,應用程式必須明確擷取視窗的類別裝置內容。

使用類別裝置內容的應用程式在處理WM_PAINT訊息時,應該一律呼叫BeginPaint。 函式會設定視窗的正確裝置來源和裁剪區域,並併入更新區域。 如果 BeginPaint 隱藏插入號,應用程式也應該呼叫 EndPaint 來還原插入號。 EndPaint 對類別裝置內容沒有其他影響。

系統會在將 WM_ERASEBKGND 訊息傳送至應用程式時傳遞類別裝置內容,允許目前的屬性值影響應用程式或系統在處理此訊息時執行的任何繪圖。 如同具有私人裝置內容的視窗,應用程式可以使用 GetDCEx 強制系統傳回具有類別裝置內容之視窗的通用裝置內容。

不建議使用類別裝置內容。