我有36个CWnd排列显示,
双击其中一个会进行满屏切换。
我用MoveWindow(0, 0)
但是会有剧烈的闪烁。用BeginDeferWindowPos/DeferWindowPos/EndDeferWindowPos
也没有效果
请教如何处理才能去除闪烁

解决方案 »

  1.   

    试试36个CWnd的共同的父窗口: LockWindowUpdate();Move...UnlockWindowUpdate();
      

  2.   

    MoveWindow(0, 0) 干啥呢?隐藏原先满屏的窗口么?
      

  3.   

    BeginDeferWindowPos/DeferWindowPos/EndDeferWindowPos用这个肯定是需要的,楼主还需要两方面优化:
    1.36个cwnd应该是有绘制贴图吧,如果有记得要用双缓冲呀。
    2.考虑下先隐藏,等移动完了,再全部show出来。
      

  4.   

    给那些窗口增加WS_CLIPCHILDREN|WS_CLIPSIBLINGS样式
    在进行布局调整时最好先LockWindowUpdate,当调整完后再UnlockWindowUpdate.如果是有序的窗口排列建议不要使用窗口,直接绘制逻辑上的窗口(无句柄的).
      

  5.   

    SetWindowPos不行吗?直接把要全屏的窗口设置为TOPMOST,其他的不用管
      

  6.   

    没有太大效果
    LockWindowUpdate();Move...UnlockWindowUpdate();