如何使用GDI +拖动矩形?

时间:2016-12-19 12:57:46

标签: c++ mfc gdi+ gdi

我正在尝试使用GDI +实现拖动一个简单的矩形。我的代码只是将图形对象转换为新位置并绘制一个新的矩形。

只要 OnMouseMove 事件发生,就会经常调用

TransllateRectangle

void RectangleContainer::TranslateRectangle(CDC *pDC, CRect newR, CRect   oldR)
{   
   Graphics graphics(pDC->m_hDC);

   DWORD ole = m_FillColor;
   BYTE rr = ((BYTE)(ole));
   BYTE gg = ((BYTE)(((WORD)(ole)) >> 8));
   BYTE bb = ((BYTE)((ole) >> 16));

   SolidBrush linGrBrush(
      Color(125, rr, gg, bb)
   );

   Rect newRectangle = Rect(newR.left, newR.top, newR.Width(), newR.Height());

   Matrix matrix;

   matrix.Translate(newR.left - oldR.left, 0);

   graphics.SetTransform(&matrix);

   graphics.FillRectangle(&linGrBrush, newRectangle);

   graphics.~Graphics();

}

我的问题是我无法正确删除旧位置绘制的旧矩形。我怎么能实现这个目标呢?

0 个答案:

没有答案