你可以用画线的方法代替画矩形,画四条直线就可以了,起点和终点都知道画起来很容易。
在OnDraw(CDC *pDC)函数中
int nSavedDC = pDC->SaveDC();
COLORREF col = RGB(255,0,0);
CPen pen(PS_SOLID,2,col);
pDC->SelectObject(&pen);
(CBrush*)pDC->SelectStockObject(NULL_BRUSH);//空心的笔
pDC->Rectangle(&rect);
pen.DeleteObject();
pDC->RestoreDC(nSavedDC);
OnLButtonDown OnLButtonUp只是做标记和释放吧,标记不做也可以,在Move里面可以获取鼠标状态。
OnMouseMove里面,需要用dc的函数SetROP2(R2_NOT);先设置绘画模式就可以了,这样后面画矩形就是透明的。