在view类中,设2个变量,mpoint(存圆心),mlenth(存半径),在ondraw()中重画,扩大可将半径*n,就行!      你有20呢,老弟,点管理,进来给我加分:——)

解决方案 »

  1.   

    LButtonDown
    保存圆心点和移动点LButtonMove//保存原画图模式
    int OldModeR=dc.GetROP2();
    //设定异或模式
    dc.SetROP2(R2_NOT);
    //抹掉前一圆
    ...
    //画当前圆
    ...
    //恢复异或模式
    dc.SetROP2(OldModeR);
    //更新移动点
    m_PntMove=point;LButtonUp
    int OldModeR=dc.GetROP2();
    dc.SetROP2(R2_NOT);
    //擦去前一个圆
    ...
    dc.SetROP2(OldModeR);
    //画当前圆
    ...
      

  2.   

    如果整个显示过程在OnDraw中,不要在屏幕DC上直接画,所有操作放到内存DC中,好后再BitBlt到屏幕DC上,就会好些
    如果是在外部触发的屏幕重绘消息,在OnDraw中画,此时可以在WM_ERASEBKGND消息中什么也不做,会消除闪烁
      

  3.   

    你可以重载CView::OnUpdate();
    增加
    Invalidate(FALSE);另外你可以考虑用Path取代掩码位图
      

  4.   

    请问怎么用PATH 取代掩码位图啊?
    能给出点示范吗?
      

  5.   

    http://www.csdn.net/expert/TopicView.asp?id=238259is good