IDB_BITMAP2。Bitmap、Image 下拉選 IDB_BITMAP2。
class CTestDlg : public CDialog
{
CBrush m_brBk; // 背景筆刷
// ...
};
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP2);
m_brBk.CreatePatternBrush(&bmp); // 建立紋理筆刷
bmp.DeleteObject();
return TRUE;
}
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd == this) // 對話框本身
return m_brBk;
return hbr;
}
缺點:覆蓋整個對話框背景,子控件背景亦受影響,需額外處理控件透明度。
ImgAdmin.ocx, ImgCmn.dll, ImgEdit.ocx, ImgScan.ocx, ImgShl.dll, ImgThumb.ocx, ImgUtil.dll (缺則從他機複製並 regsvr32 註冊)。Kodak Image Edit Control。m_ctrlPicture (類型 CImageEditCtrl 或對應包裝類)。OnInitDialog 載入圖片:
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ctrlPicture.SetImage(_T("aa.jpg")); // 相對或絕對路徑
m_ctrlPicture.Display();
return TRUE;
}
優點:支援 JPEG、TIFF、PNG、GIF 等多種格式、內建縮放、列印、掃描介面。
缺點:部署需攜帶多個 OCX/DLL、授權問題、較重量級。
| 方法 | 支援格式 | 動態切換 | 部署複雜度 | 適用場景 |
|---|---|---|---|---|
| Picture Control (資源) | BMP | 否 | 無 | 固定圖示、Logo |
| OnCtlColor 筆刷 | BMP | 是 (換筆刷) | 無 | 全視窗背景圖 |
| Kodak ActiveX | 多格式 | 是 | 高 | 影像檢視、編輯應用 |