emWin使用遇到的問題以及解決辦法


問題一:在動態顯示文本/數字的時候發現,顯示對象閃爍

  分析及解決辦法:窗口管理器的默認特性是向每個需要重繪的窗口發送一條WM_PAINT 消息。這會導致閃爍效果。為抑制這些‘每個窗口’的閃爍效果,可為重繪操作自動使用內存設備。方法為,在創建窗口時設置標記WM_CF_MEMDEV 、使用函數WM_SetCreateFlags() 設置默認創建標記, 或使用函數WM_EnableMemdev()。WM然后會將WM_PAINT 消息的輸出重定向到內存設備中,執行實際顯示時再一次性復制到顯示器中。如果沒有足夠的內存存放整個窗口,會自動使用分段。內存設備只在WM_PAINT 消息發送之前在內部創建,在繪制操作完成后立即刪除。

  a.WM_SetCreateFlags(WM_CF_MEMDEV);

  b.WM_EnableMemdev(hWin);    //hWin為需要使用內存設備的窗口句柄

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM