鼠标绘图(转)

来源:互联网 发布:网络关系营销的概念 编辑:程序博客网 时间:2024/06/04 00:26
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point){    // TODO: 在此添加消息处理程序代码和/或调用默认值    //MessageBox("down");    m_ptOrigin = c_ptOld = point;    m_bDraw = TRUE;    CView::OnLButtonDown(nFlags, point);}void CDrawView::OnLButtonUp(UINT nFlags, CPoint point){    // TODO: 在此添加消息处理程序代码和/或调用默认值    //MessageBox("up");    /*    HDC hdc = ::GetDC(m_hWnd);    MoveToEx(hdc, m_ptOrigin.x, m_ptOrigin.y, NULL);    LineTo(hdc, point.x, point.y);    ::ReleaseDC(m_hWnd, hdc);    */    /*    CDC *pDC = GetDC();    pDC->MoveTo(m_ptOrigin);    pDC->LineTo(point);    ReleaseDC(pDC);    */    /*    CClientDC dc(this);    //CClientDC dc(GetParent());    dc.MoveTo(m_ptOrigin);    dc.LineTo(point);    */    /*    //CWindowDC dc(this);    //CWindowDC dc(GetParent());    CWindowDC dc(GetDesktopWindow());    dc.MoveTo(m_ptOrigin);    dc.LineTo(point);    */    /*    //CPen pen(PS_SOLID, 90, RGB(65, 88, 65));    //CPen pen(PS_DASH, 1, RGB(65, 88, 65));    CPen pen(PS_DOT, 1, RGB(65, 88, 65));    CClientDC dc(this);    CPen * pOldPen = dc.SelectObject(&pen);    dc.MoveTo(m_ptOrigin);    dc.LineTo(point);    dc.SelectObject(pOldPen);    */    //CBrush brush(RGB(23, 22, 67));        //CBitmap bitmap;    //bitmap.LoadBitmap(IDB_BITMAP1);    //CBrush brush(&bitmap);    //CClientDC dc(this);    //dc.FillRect(CRect(m_ptOrigin, point), &brush);        /*    CClientDC dc(this);    CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));    CBrush *pOldBrush = dc.SelectObject(pBrush);    dc.Rectangle(CRect(m_ptOrigin, point));    dc.SelectObject(pOldBrush);    */    m_bDraw = FALSE;    CView::OnLButtonUp(nFlags, point);}void CDrawView::OnMouseMove(UINT nFlags, CPoint point){    // TODO: 在此添加消息处理程序代码和/或调用默认值    CClientDC dc(this);    CPen pen(PS_SOLID, 0, RGB(65, 88, 65));    CPen *pOldPen = dc.SelectObject(&pen);    if(m_bDraw == TRUE){        dc.SetROP2(R2_BLACK);        dc.MoveTo(m_ptOrigin);        //dc.LineTo(point);        dc.LineTo(c_ptOld);        //dc.MoveTo(m_ptOrigin);        dc.MoveTo(c_ptOld);  //删除鼠标移动过程中画的线  只保留最后的线 否则效果是满窗口都是线  没有达到那种移动画线的效果        dc.LineTo(point);        //m_ptOrigin = point;        c_ptOld = point;    }    dc.SelectObject(pOldPen);    CView::OnMouseMove(nFlags, point);}

0 0
原创粉丝点击