在 VC6.0 的 MFC 對話框中使用位圖作為背景時,若視窗大小改變背景圖片沒有隨之拉伸,可以透過 CImage 類別搭配 StretchBlt 模式來實現自適應縮放。
取得目標控制項的裝置內容 (DC),並呼叫 GetClientRect 取得控制項的客戶區域大小。接著使用 image.Draw(hDC, rect_frame) 將圖片繪製到該區域,並呼叫 SetStretchBltMode 設定為 HALFTONE 以獲得較佳的縮放品質。
在繪製完成後記得釋放裝置內容,這樣背景圖片就能隨對話框大小自動拉伸,不再出現平鋪情況。