私は、デバイスコンテキストにCRectのベクトルを描画します。オーバーラップするCRectsは、すべての交差点がより明るい緑に変わるようになるはずです。そこで、次のコードを考えました: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には何も描かれていないようです。私は間違って何をしていますか?これは有効なアプローチですか?
ありがとうBarmak!そしてMarcinに感謝します!両方のアプローチを組み合わせることで、私はこの仕事を達成するのに役立ちました。 – Michen