我使用CRectTracker时,屏幕上的虚线框总在那里,比如在对话框上显示了一个CRectTracker虚线框后,发生窗口重绘时那个虚线框仍然没有清除,但是如果调用了Invalidate或UpdateWindow后,虽然虚线框被清除了,但所要绘制的图像(图像是在OnPain()中绘制的,而且Invalidate或UpdateWindow是在绘制图像之前调用)也没有了,对话框上一片空白,弄了很久还是这样,不知到错在哪里,请大家帮忙!
调试欢乐多
这里有擦除直线的代码,你可以参考一下
::SetROP2(hdc,R2_XORPEN);
SelectObject(hdc,pen);
...
LineTo(hdc,100,100); //画线
--------------------------------------------------------------- CDC* pDC = GetDC();
CPen pen(PS_SOLID,4,RGB(128,0,0)); CPen* pOldPen = pDC->SelectObject(&pen);
pDC->SetROP2(R2_XORPEN);
pDC->MoveTo(0,0);
pDC->LineTo(100, 100); // 擦除
pDC->SelectObject(&pOldPen);
ReleaseDC(pDC);
//画线的时候也用上SetROP2(R2_XORPEN);
//就是调用相同的代码执行擦除和重画动作就可以了
http://www.differentpla.net/content/2004/03/using-drawdragrect-to-rubber-band-a-selection