天天看點

解決SDK中貼圖 閃爍和調用 Invalidate之後 無法繼續貼圖的問題

    還是 在做俄羅斯方框的過程中遇到的問題      

   1.調用了InvalidateRect之後 知否發現不能繼續貼圖了  。。但是隻要窗體一被遮住就沒問題  

      解決 : 這是應為 InvalidateRect這個函數會使指定的矩形區域程式設計無效區域 會導緻區域重繪 消息從 WM_ERASEBKGND   -> WM_PAINT    

   我們知道在處理 WM_PAINT的時候我們用到了 BeginPaint() 和EndPaint()  BeginPaint使矩形區域有效 通常我們出現的調用InvalidateRect 之後不能繪制問題 或者貼圖的原因是 這塊區域沒有到達 BeginPaint()  就開始了 貼圖操作 明白了吧   解決的辦法   就是在 BeginPaint之後 進行貼圖操作  就沒出現這樣的問題

  2.SDK  MFC程式中出現的閃屏問題        

   解決辦法很簡單 就是 處理WM_ERASEBKGND消息    不擦出背景直接貼圖  但是在WM_PAINT出現的閃屏是因為 先在WM_ERASEBKGND消息中擦除了背景 然後再貼圖 當然會出問題了 

 以上是小弟 俄羅斯方框的結論 。。。希望對大家有用