窗口重画的问题。

triout 2003-09-13 11:34:02
一个PropertyPage,在PropertyPage中创建了一个自定义的CWnd Panel1
在Panel1中,创建了一个继承自CWnd的Panel2
在Panel2中,创建了一个继承自CWnd的Panel3
在Panel3中,创建了多个继承自CWnd的Panel4

其中Panel1和Panel2固定,Panel3的高度会根据Panel4的多少和总高度而不定,因此在Panel2中设置了VScrollBar,用于滚动Panel3的显示。

创建过程是调用自定义的Create函数,然后在自定义的Create函数中调用CWnd的Create函数,完成后创建子对象。

整个滚动已经实现了,但发现:
1——
滚动后,界面内容会乱七八糟的

2——
开始想是否要把创建过程放到OnPaint中,但感觉麻烦,因为Panel4里面还会有各种Window标准控件让用户操作。

3——
发现当我对Sheet最小化后(被其他的应用窗口隐藏)再显示则恢复了正常或者切换到其他的PropertyPage后再返回来也正常

4——
于是想在OnVScroll事件调用完成后,调用Invalidate等一系列有关函数,都不成功。

问:
用什么方式实现滚动后内容即时刷新,尽量不要在OnPaint中创建子对象。
...全文
57 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
daview 2003-09-17
  • 打赏
  • 举报
回复
这个问题好象真的很难,不过我重载了Panel4的OnEraseBkgnd,用一个空函数替代,已经解决问题。

揭贴了,斑竹不要认为是倒分呀,这是我自己的另外一个帐号,专门用来对那些没有办法解决或自己解决了的帖子揭贴用的。
triout 2003-09-17
  • 打赏
  • 举报
回复
up
triout 2003-09-16
  • 打赏
  • 举报
回复
没有人能回答吗?
triout 2003-09-14
  • 打赏
  • 举报
回复
up

15,979

社区成员

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

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