CFormView中控件重绘问题

BEISHUISHILAN 2009-06-01 02:57:22
这学期《数据结构课程设计-图》遇到的问题:

开发环境VC

为了直观的表示图结构,我在CFormView中用CStatic控件表示图的节点,边就在节点之间画线表示

为了满足要求,我从CStatic类派生一个CDragStatic类,主要实现了控件的拖动,和设置背景色,鼠标经过时反色等效果,方法是处理鼠标消息,重载了DrawItem方法,但是却出现了一个问题

因为要在节点(CDragStatic)之间画线,所以拖动控件时必须刷新父窗口(Invalidate()),这时会发现控件(所有的控件)有明显的闪烁,我重载了CFormView的OnDraw消息在其中使用了内存画布,问题依旧,我将CFormView和CDragStatic的OnEraseBkgnd都简单的返回TRUE,还是没见什么变化。

虽然使用了内存画布,但是我感觉因为内存画布只是用来画背景和边的,而控件什么的是之后才画上去的,所以虽然背景不闪烁,但控件会闪烁,不知道这种理解对不对


我感觉拖动一个控件,父窗口重绘应该直重绘背景(包括边)和被拖动的控件,但是我的程序貌似会全盘重绘一下


期望有高手帮忙解决一下
...全文
276 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
BEISHUISHILAN 2009-06-03
  • 打赏
  • 举报
回复
恩,没有高手帮忙啊,自己顶一下

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧