思路大概知道,可是不会实现
具体是这样的
假设MFC对话框中有20张图片
按住鼠标一个键并且移动 绘制一个图层 图层大小自动适应为LBUTTONDOWN到LBUTTONUP的范围内 要如何实现呢?

解决方案 »

  1.   

    参考:
    响应WM_LBUTTONDOWN,WM_LBUTTONUP,WM_MOUSEMOVE事件
    CPoint m_OlePoint;
    CPoint m_NewPoint;
    BOOL m_;
    m_ = FALSE;
    void CYourDlg::OnPaint()
    { if(m_ == TRUE)
    {
    CClientDC dc(this);
    CPen pen(PS_DASH,0,RGB(0,0,0));
    dc.SelectObject(&pen);
    dc.Rectangle(CRect(m_OlePoint,m_NewPoint));
    }
    }
    void CYourDlg::OnLButtonDown(UINT nFlags, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    m_OlePoint = point;
    m_ = TRUE;
    CDialog::OnLButtonDown(nFlags, point);
    }void CYourDlg::OnMouseMove(UINT nFlags, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值 if(m_ == TRUE)
    {
    m_NewPoint = point;
    Invalidate();
    } CDialog::OnMouseMove(nFlags, point);
    }void CYourDlg::OnLButtonUp(UINT nFlags, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值 m_ = FALSE;
    Invalidate();
    CDialog::OnLButtonUp(nFlags, point);
    }