窗口重画的问题。
一个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中创建子对象。