现在有2个窗体a,b是同一个父窗体的子窗体,他们大小和显示区域一样,所以同一时间只能显示一个.那请问如果当前显示的是a,那我要显示b的话,是先hide a再show b还是先show b再hide a呢?
如果是一般简单的窗体,这2种方式可以随便用,也看不出有什么差异,大家也不会纠结这个顺序,
但是如果2个窗体上有很多自绘的东西,切换会闪烁一下,但是我这2种顺序都试过了,都会闪,所以估计跟这个没什么关系,但是突然就对这个挺感兴趣的,网上根本搜索不到相关资料,所以想在这里跟大家探讨一下.

解决方案 »

  1.   

    试试先 对父窗口 SetRedraw(FALSE) 然后在hide 然后在show 然后在 SetRedraw(TRUE)
      

  2.   


    谢谢,这个办法对闪的问题确实有用,太感谢了,那hide和show的顺序有什么讲究吗,为什么呢?
      

  3.   

    个人习惯先Hide一个,再Show另一个
      

  4.   


    我感觉先hide一下,父窗体会重绘,然后再show,子窗体又要重绘,如果先show的话就只有子窗体会重绘父窗体不会,但是根据2楼的意见,这个顺序也是会导致父窗体重绘的
      

  5.   

    hide和show的顺序没影响吧
    我觉得 前面闪烁的原因是 子窗口hide导致了父窗口需要先绘制被hide窗口遮挡部分,然后在绘制上面show状态的窗口,两次绘制引起了视觉上的闪烁
    我的那个方法就是的子窗口隐藏了也不需要父窗口绘制被遮挡部分,只要显示的窗口自己绘制一下,这样就不闪烁了
      

  6.   

    但是先show再hide也会导致父窗体重绘,所以很纳闷,