問題一:在動態顯示文本/數字的時候發現,顯示對象閃爍
分析及解決辦法:窗口管理器的默認特性是向每個需要重繪的窗口發送一條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為需要使用內存設備的窗口句柄