移动一个矩形时遇到的问题
我在收到WM_LBUTTONDOWN事件时,记住了鼠标单击的坐标,如下:
xBegin = LOWORD(lParam);
yBegin = HIWORD(lParam);
然后在收到WM_MOUSEMOVE事件时,移动矩形,如下:
xEnd = LOWORD(lParam);
yEnd = HIWORD(lParam);
MoveRect(xEnd - xBegin, yEnd - yBegin);
InvalidateRect(hwnd, NULL, TRUE);
RedrawRect();
其中MoveRect函数是改变矩形的左上角与右下角的坐标值,如下:
void MoveRect(int iXOffset, int iYOffset)
{
m_iPositionBeginX += iXOffset;
m_iPositionEndX += iXOffset;
m_iPositionBeginY += iYOffset;
m_iPositionEndY += iYOffset;
}
RedrawRect()是重新画矩形。
现在的问题是,当我移动鼠标时,矩形的确也移动,但矩形移动的
速度远远大于鼠标移动的速度,一下子,矩形就移动到用户区之外,看不到了,
关于映射模式与坐标原点,我都是使用的默认值。
不知道问题出在什么地方,请知道的指点一下!