编写一个单文档界面的应用程序,程序启动后在用户区显示一个圆,用鼠标可以拖动这个圆。
//在视图类声明中定义成员变量:
private:
BOOL m_bLBtnDown;
CPoint m_pointMouse;
CRect m_rectEllipse;
//在视图类的构造函数中对成员变量进行初始化:
CDragView::CDragView():m_rectEllipse(100,100,200,200)
{
m_bLBtnDown=FALSE;
}
//在视图类的鼠标按下消息响应函数中输入如下代码:
void CDragView::OnLButtonDown(UINT nFlags, CPoint point)
{
if(m_rectEllipse.PtInRect(point))
{
m_bLBtnDown=TRUE;
m_pointMouse=point;
}
CView::OnLButtonDown(nFlags, point);
}
//在鼠标移动消息响应函数中输入如下代码:
void CDragView::OnMouseMove(UINT nFlags, CPoint point)
{
if(m_bLBtnDown)
{
InvalidateRect(m_rectEllipse);
CSize offset(point-m_pointMouse);
m_rectEllipse+=offset;
InvalidateRect(m_rectEllipse);
m_pointMouse=point;
}
CView::OnMouseMove(nFlags, point);
}
//在鼠标释放消息响应函数中输入如下代码
void CDragView::OnLButtonUp(UINT nFlags, CPoint point)
{
if(m_bLBtnDown)
{
m_bLBtnDown=FALSE;
}
CView::OnLButtonUp(nFlags, point);
}