記憶體裝置內容
若要讓應用程式將輸出放在記憶體中,而不是將輸出傳送至實際裝置,請使用稱為 記憶體裝置內容之位圖作業的特殊裝置內容。 記憶體 DC 可讓系統將部分記憶體視為虛擬設備。 這是記憶體中的位數組,應用程式可以暫時用來儲存在一般繪圖介面上建立之位圖的色彩數據。 由於點陣圖與裝置相容,記憶體DC有時也稱為 相容裝置內容。
記憶體 DC 會儲存特定裝置的點陣圖影像。 應用程式可以呼叫 CreateCompatibleDC 函式來建立記憶體 DC。
記憶體 DC 中的原始點陣圖只是佔位元。 其尺寸是一個像素乘一個圖元。 應用程式必須先呼叫 selectObject 函式,以選取具有適當寬度和高度的點陣圖,才能開始繪製應用程式。 若要建立適當維度的位圖,請使用 CreateBitmap、CreateBitmapIndirect或 CreateCompatibleBitmap 函式。 選取位圖到記憶體DC之後,系統會將單一位數組取代為足以儲存指定圖元矩形的色彩資訊陣列。
當應用程式將 CreateCompatible DC 所傳回的句柄傳遞至其中一個繪圖函式時,要求的輸出不會出現在裝置的繪圖介面上。 相反地,系統會在位數組中儲存結果線條、曲線、文字或區域的色彩資訊。 應用程式可以呼叫 BitBlt 函式,將儲存在記憶體中的影像複製回繪圖介面,將記憶體 DC 識別為來源裝置內容,並將視窗或螢幕 DC 識別為目標裝置內容。
在調色盤裝置上顯示從 DIB 建立的 DIB 或 DDB 時,您可以藉由排列邏輯調色盤以符合系統調色盤的配置來改善影像繪製的速度。 若要這樣做,請使用NUMRESERVED值呼叫 GetDeviceCaps,以取得系統中保留的色彩數目。 然後呼叫 GetSystemPaletteEntries,並使用對應的系統色彩填入邏輯調色盤的第一個和最後一個 NUMRESERVED/2 專案。 例如,如果 NUMRESERVED 為 20,您會使用系統色彩填入邏輯調色盤的第一個和最後 10 個專案。 然後填入邏輯調色盤的其餘 256-NUMRESERVED 色彩(在我們的範例中為剩餘的 236 種色彩),並設定這些色彩上的PC_NOCOLLAPSE旗標。
如需色彩和調色盤的詳細資訊,請參閱 色彩。 如需點陣圖和點陣圖作業的詳細資訊,請參閱 位圖。