动态画直线
(1)设置拖曳标记以及光标句柄。在视图类CMyDrawView的头文件中添加如下成员变量的定义
public:
int m_down;
int m_up;
int m_uy1;
int m_ux1;
int m_dy1;
int m_dx1;
(2)在视图类CMyDrawView的构造函数中初始化拖曳标记,设置十字光标。
CMyLineView::CMyLineView()
{
// TODO: add construction code here
m_bDragging=false;
m_hCross=AfxGetApp()->LoadStandardCursor(IDC_CROSS);
}
(3)利用ClassWizard类向导为视图类添加按下鼠标左键WM_LBUTTONDOWN、移动鼠标WM_MOUSEMOVE和释放鼠标左键WM_LBUTTONUP的消息处理函数。
void CMyLineView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_down=1;
m_dx1=point.x;
m_dy1=point.y;
SetCapture();
::SetCursor(m_hCross);
m_ptOrigin=point;
m_bDragging=TRUE;
CView::OnLButtonDown(nFlags, point);
}
void CMyLineView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(m_down)
{
CClientDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
m_ptOrigin=point;
}
if(m_up)
{
CMyLineDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
pDoc->AddLine(m_dx1,m_dy1,m_ux1,m_uy1);
CClientDC dc1(this);
dc1.MoveT