我正在寫一個Win7桌面應用程序,並希望從無縫過渡到窗口 - 全屏(反之亦然),並且主要通過調用SetWindowLongPtr更新其樣式,然後MoveWindow更新其大小和位置。問題是窗口閃爍一幀以顯示其風格已更新,但未顯示新的尺寸和位置。下一幀一切看起來正確,但我試圖避免這個單幀神器。如何以原子方式更新HWND的風格和位置?
我試過顛倒了我調用API的順序,但它只是改變了工件的外觀。我也嘗試隱藏窗口,調用API,然後顯示窗口,但這隻會導致窗口消失一幀。
我知道一個選擇是創建一個具有所需屬性的新窗口,然後銷燬舊的窗口,但我想找到一個更便宜的選擇。
那麼有什麼辦法可以調用這些API並讓它們在原子上被視覺反射?作爲獎勵,將多個生成的WM_SIZE消息合併成單個事件會很好,但我可以在消息處理程序中自己管理它。
最準確的答案,但我無法獲得在多臺機器上始終無僞造的任何內容,包括使用RedrawWindow方法。 – MooseBoys