CXXXView::OnDraw中应该加入重绘的代码

解决方案 »

  1.   

    不需要加,在mousemove里面已经画了,可以看出来画的效果。
      

  2.   

    void CDiskImageView::OnMouseMove(UINT nFlags, CPoint point) 

    CRect myrect; 

    CMainFrame *pMF=(CMainFrame *)AfxGetMainWnd(); 
    CChildFrame *pCF=(CChildFrame *)pMF->GetActiveFrame(); 
    pCF->GetClientRect(&myrect); 
    GetCursorPos(&point); 
    pCF->ScreenToClient(&point); 
    if(myrect.PtInRect(point)) 

    CClientDC  dc(this);  
    CPen  *pen  =  new  CPen;  
    pen->CreatePen(PS_SOLID,  1,RGB(255,  0,  0));  
    CGdiObject*  pOldPen  =  dc.SelectObject(pen);  
    int  old_rop  =  dc.SetROP2(R2_XORPEN); 
     /*********************************************************************/
    dc.FillRect(myrect,&CBrush(RGB(255,255,255)));
    //dc.MoveTo(ptOldOrg);  
    //dc.LineTo(ptOldDes);  //dc.MoveTo(ptOldOrg2); 
    //dc.LineTo(ptOldDes2);   /**********************************************************************************/
    ptNewOrg  =  CPoint(point.x,myrect.top);  
    ptNewDes  =  CPoint(point.x,myrect.bottom);  ptNewOrg2  =  CPoint(myrect.right,point.y);  
    ptNewDes2  =  CPoint(myrect.left,point.y);   dc.MoveTo(ptNewOrg);  
    dc.LineTo(ptNewDes);  dc.MoveTo(ptNewOrg2);  
    dc.LineTo(ptNewDes2);  
        
    ptOldOrg  =  ptNewOrg;  
    ptOldDes  =  ptNewDes;  ptOldOrg2  =  ptNewOrg2;  
    ptOldDes2  =  ptNewDes2;  dc.SetROP2(old_rop); 
    dc.SelectObject(pOldPen);    
    delete  pen; 
    }  CWnd::OnMouseMove(nFlags, point); }