CFormView中控件重绘问题
这学期《数据结构课程设计-图》遇到的问题:
开发环境VC
为了直观的表示图结构,我在CFormView中用CStatic控件表示图的节点,边就在节点之间画线表示
为了满足要求,我从CStatic类派生一个CDragStatic类,主要实现了控件的拖动,和设置背景色,鼠标经过时反色等效果,方法是处理鼠标消息,重载了DrawItem方法,但是却出现了一个问题
因为要在节点(CDragStatic)之间画线,所以拖动控件时必须刷新父窗口(Invalidate()),这时会发现控件(所有的控件)有明显的闪烁,我重载了CFormView的OnDraw消息在其中使用了内存画布,问题依旧,我将CFormView和CDragStatic的OnEraseBkgnd都简单的返回TRUE,还是没见什么变化。
虽然使用了内存画布,但是我感觉因为内存画布只是用来画背景和边的,而控件什么的是之后才画上去的,所以虽然背景不闪烁,但控件会闪烁,不知道这种理解对不对
我感觉拖动一个控件,父窗口重绘应该直重绘背景(包括边)和被拖动的控件,但是我的程序貌似会全盘重绘一下
期望有高手帮忙解决一下