我要循环作图,如在某一个区域画一个矩形, 每次循环将旧的图形刷掉,用pDC->SetROP2(R2_NOT)或者pDC->SetROP2(R2_XORPEN);可以实现, 但是背景颜色是黑的时候,画出来的线总是白的, 我想用红色或者其他颜色如何实现?
int nOrgMode = pDC->GetRop2();
HPEN hNewPen = CreatePen(PS_SOLID,1, RGB(255,0,0); //创建红色的画笔
HPen hOldPen = pDC->SelectObject(hNewPen);
pDC->SetROP2(R2_XORPEN); //设置异或模式以擦除以前的图形
pDC->Rectangle(oldRect); //擦除以前的矩形
pDC->Rectangle(newRect); //画新的矩形
pDC->SetRop2(nOrgMode);
pDC->SelectObject(hOldPen);
上面创建了红色的画笔,并希望画出来的矩形框是红色的,结果每次画出来都是
白色的, (背景是黑色的)无论我怎么修改画笔的颜色,请问要实现画出来的是
红色如何做啊,谢谢!
int nOrgMode = pDC->GetRop2();
HPEN hNewPen = CreatePen(PS_SOLID,1, RGB(255,0,0); //创建红色的画笔
HPen hOldPen = pDC->SelectObject(hNewPen);
pDC->SetROP2(R2_XORPEN); //设置异或模式以擦除以前的图形
pDC->Rectangle(oldRect); //擦除以前的矩形
pDC->Rectangle(newRect); //画新的矩形
pDC->SetRop2(nOrgMode);
pDC->SelectObject(hOldPen);
上面创建了红色的画笔,并希望画出来的矩形框是红色的,结果每次画出来都是
白色的, (背景是黑色的)无论我怎么修改画笔的颜色,请问要实现画出来的是
红色如何做啊,谢谢!
好像xiongyouyi 说的是对的,用异或的方式画不出来,但是实时绘制的话效果看起来不好。但我看过有的软件就是可以的,也不知道他们用的是什么办法,有没有高手给指点一下啊????
6楼说的那个不是不可以画,只是画出来的线是跟屏幕颜色与画笔取的异或,当屏幕背景变的时候,画出来的线条颜色就一直在变,看起来很不舒服,尤其是你要在一副BMP上画线的时候,效果特别不好