Я хочу сделать нарисовать вектор CRect в контексте устройства. Критерии, которые перекрываются, должны складываться таким образом, чтобы пересечение всех объектов становилось ярче зеленого. Поэтому я придумал следующий код:Использование TransparentBlt для рисования в MFC
void Grid::tag(CDC* pDC){
CBrush brushGreen;
brushGreen.CreateSolidBrush(RGB(0, 100, 0));
CDC dcMemory;
dcMemory.SelectObject(&brushGreen);
dcMemory.CreateCompatibleDC(pDC);
for (size_t i = 0; i < taglist.size(); i++){
dcMemory.FillRect(taglist[i], &brushGreen);
pDC->TransparentBlt(frame.left, frame.top, frame.Width(), frame.Height(), &dcMemory, taglist[i].left, taglist[i].top, taglist[i].Width(), taglist[i].Height(),RGB(0,100,0));
}
DeleteObject(brushGreen);
}
К сожалению, это оказывается черным. Кажется, что ничто не втягивается в pDC. Что я делаю не так? Действительно ли это правильный подход?
Спасибо, Бармак! И спасибо Марчину! Сочетание обоих подходов помогло мне решить эту задачу. – Michen