我正在使用 MFC 编写一个应用程序,并且我试图让用户能够通过鼠标拖动在图片控件顶部绘制一个矩形。我还希望允许用户通过鼠标单击来调整矩形的大小和移动。
目前,我已经编写了一个自定义图片控件类的一部分来处理图片控件上的绘图。
void PictureCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
SetCapture();
anchor = point;
CDC* pDC = GetDC();
CRect rect(point,point);
pDC->DrawDragRect(&rect, CSize(1,1), NULL, CSize(1,1), NULL, NULL);
ReleaseDC(pDC);
CStatic::OnLButtonDown(nFlags, point);
}
void PictureCtrl::OnMouseMove(UINT nFlags, CPoint point)
{
if(GetCapture() == this)
{
CRect rect(anchor, point);
rect.NormalizeRect();
CDC *pDC = GetDC();
pDC->DrawDragRect(&rect, CSize(1,1), &userRect, CSize(1,1), NULL, NULL);
ReleaseDC(pDC);
}
CStatic::OnMouseMove(nFlags, point);
}
void PictureCtrl::OnLButtonUp(UINT nFlags, CPoint point)
{
if(GetCapture() == this)
{
CDC *pDC = GetDC();
// pDC brush color and fill transparent
CPen penBlack;
penBlack.CreatePen(PS_SOLID, 3, RGB(0,0,0));
pDC->SelectStockObject(NULL_BRUSH);
pDC->SelectObject(penBlack);
pDC->Rectangle(userRect);
ReleaseDC(pDC);
ReleaseCapture();
}
CStatic::OnLButtonUp(nFlags, point);
谁能让我开始了解如何使用鼠标拖动使矩形可调整大小和移动?
如何访问我使用的矩形对象pDC->Rectangle(userRect);
?
如果用户绘制另一个矩形,我还想删除一个旧矩形,一次只允许一个矩形在图片控件上。谢谢!