VC++修改PIC控件颜色示例代码

示例代码:

// 创建PIC控件
CPictureCtrl picCtrl;
picCtrl.Create(ID_STATIC_PIC, _T(""), WS_CHILD | WS_VISIBLE, CRect(0, 0, 200, 200), this);

// 加载图片
picCtrl.LoadPicture(L"image.bmp");

// 获取图片的DC
CDC* pDC = picCtrl.GetDC();

// 设置新的调色板
CPalette* pPal = new CPalette;
pPal->CreatePalette(
    PALETTEENTRY {
        { 0, 0, 0 },  // 黑色
        { 255, 255, 255 }, // 白色
        { 255, 0, 0 },  // 红色
        { 0, 255, 0 },  // 绿色
        { 0, 0, 255 }   // 蓝色
    },
    5
);

pDC->SelectPalette(pPal, FALSE);
RealizePalette(pDC);

// 选择调色板中第一个颜色(黑色)
CBrush brush(pPal->GetNearestPaletteIndex(RGB(0, 0, 0)));

// 用黑色填充图片
pDC->FillRect(CRect(0, 0, 200, 200), &brush);

// 释放DC和调色板
picCtrl.ReleaseDC(pDC);
delete pPal;
rar 文件大小:27.33KB