我在白色背景中有黑点的图像,我用它来创建一个模板画笔并使用SetTextColor更改黑点的颜色。所以我使用PNG图像创建了一个CBitmap(我使用CPngImage获取HBITMAP并将其附加到CBitmap)。现在我使用(CreatePatternBrush)创建了具有该位图的PatternBrush,问题是如果我使用PNG图像,画笔的颜色不会改变。但是当我使用bmp格式的图像时它会改变。
这是一些代码
CBitmap bmp;
if (bmp.LoadBitmap(IDB_BITMAP1))
{
if (brush.CreatePatternBrush(&bmp))
pOldBrush = pDC->SelectObject(&brush);
}
pDC->SetTextColor(color);
本作品
CBitmap bmp;
CPngImage pngImage;
HBITMAP hBitmap = NULL;
if ( pngImage.Load(MAKEINTRESOURCE(IDB_PNG1)) )
{
hBitmap = (HBITMAP)pngImage.Detach();
}
if ( hBitmap )
bmp.Attach(hBitmap);
if (brush.CreatePatternBrush(&bmp))
pOldBrush = pDC->SelectObject(&brush);
pDC->SetTextColor(color);
这不起作用