用心计较般般错 安心自守事事宽

cgl 坚持、努力终有所获
  新随笔  :: 管理

  想用INewPolygonFeedback来实时显示多边形的面积

  想用INewPolygonFeedback来实时显示多边形的面积。INewPolygonFeedback画多边形不用多说。大致过程大家都知道。

 

  如果要实时显示多边形的面积,那么就要在BaseTool工具的OnMouseMove方法中实现。即在这个方法中,获取多变形的最后一个点,并根据之前的点组成多边形,求其面积后,用IElement来显示出一个面积字符串。

 

  在显示的过程中,由于每一次鼠标移动要到刷新要素,用到方法PartialRefresh。在刷新要素的过程中,对INewPolygonFeedback所画的轨迹产生干扰。闪动非常大。不知道怎么解决,偶然发现INewPolygonFeedback本身有一个Reflash方法,用次方法解决问题。

 

BaseTool中,重写Reflash方法,然后把INewPolygonFeebbackReflash放到其中。代码如下:

        public override void Refresh(int hDC)

        {

            m_pNewPolygonFeedback.Refresh(hDC);

            base.Refresh(hDC);

        }