從影像清單描繪影像
若要繪製影像,請使用 CImageList::D raw 成員函式。 您將會指定裝置內容物件指標、繪製之影像索引、裝置內容中要繪製影像的位置,以及指出繪製樣式的一組旗標。
當您指定 ILD_TRANSPARENT 樣式時, Draw
會使用雙步驟程式來繪製遮罩影像。 首先,它會在影像位元和遮罩位元執行邏輯 AND 作業。 然後,它會在第一個作業的結果與目的裝置内容的背景位元,執行邏輯 XOR 作業。 這個程序會在產生的影像中建立透明區域,即遮罩中每個白色位元會使產生影像的對應位元變成透明。
在純色背景上繪製遮罩影像之前,您應該使用 SetBkColor 成員函式,將影像清單的背景色彩設定為與目的地相同的色彩。 設定色彩可免除在影像中建立透明區域的需求,並可讓您 Draw
直接將影像複製到目的地裝置內容,進而大幅提升效能。 若要繪製影像,請在 呼叫 Draw
時指定ILD_NORMAL 樣式。
您可以隨時設定遮罩影像清單 ( CImageList ) 的背景色彩,使其在任何純色背景上正確繪製。 將背景色彩設定為 CLR_NONE 預設會以透明方式繪製影像。 若要擷取影像清單的背景色彩,請使用 GetBkColor 成員函式。
具有 系統醒目提示色彩的影像ILD_BLEND25 和 ILD_BLEND50 樣式。 如果您使用代表使用者可選取之物件的遮罩影像,這些樣式便可派上用場。 例如,您可以在使用者選取影像時,使用 ILD_BLEND50 樣式來繪製影像。
使用點陣作業將非遮罩影像複製到目的地裝置內容 SRCCOPY
。 不論裝置內容的背景色彩為何,影像色彩都與之相同。 中指定的 Draw
繪圖樣式也不會影響非遮罩影像的外觀。
除了 Draw 成員函式之外,另一個函 式 DrawIndirect 會擴充轉譯影像的能力。 DrawIndirect
會採用 IMAGELISTDRAWPARAMS 結構作為參數 。 這個結構可以用來自訂目前影像的呈現,包括使用點陣化操作 (ROP) 程式碼。 如需 ROP 程式碼的詳細資訊,請參閱 Windows SDK 中的點陣作業代碼 和 點陣圖作為筆刷 。