当对mainfrm窗口作SetRedraw(FALSE)后,如果鼠标在mainfrm内点击就会直接点到后面的应用程序窗口,不知道这个情况大家有遇到过没?如何解决(在不调用SetRedraw(TRUE)的情况下)?

解决方案 »

  1.   

    没遇到过,你有什么特殊的需求要对mainfrm窗口调SetRedraw(FALSE)呢?
    SetRedraw(FALSE)一般用在频繁重绘的地方,例如需要向一个CListBox里加100000条记录,那么CListBox会重绘100000次导致窗口闪烁,于是先SetRedraw(FALSE)再添加记录最后SetRedraw(TRUE),窗口只重绘一次
    另外,你可以试试把SetRedraw(FALSE)换成LockWindowUpdate()
      

  2.   

    之后
    Invalidate();
    UpdateWindow();试试
      

  3.   

    LockWindowUpdate()这个可以--------------
    Invalidate(); 
    UpdateWindow();这个不行 
      

  4.   

    楼主,不好意思,我现在也遇到这个问题,用LockWindowUpdate()没有SendMessage()效果好,但是用SendMessage()会出现你说的激活后面窗体这个问题...
    SendMessage()解决了吗?帮我看下好吗???
    http://topic.csdn.net/u/20120428/09/061ee207-9c8e-4030-8543-5b74514bf596.html?seed=99176887&r=78403687#r_78403687
      

  5.   

    楼主,不好意思,我现在也遇到这个问题,用LockWindowUpdate()没有SendMessage()效果好,但是用SendMessage()会出现你说的激活后面窗体这个问题...
    SendMessage()解决了吗?帮我看下好吗???
    http://topic.csdn.net/u/20120428/09/061ee207-9c8e-4030-8543-5b74514bf596.html?seed=99176887&r=78403687#r_78403687