私はWin7デスクトップアプリを書いていて、ウィンドウからウィンドウフルスクリーン(およびその逆)にシームレスに移行したいと考えており、SetWindowLongPtrを呼び出してスタイルを更新し、その後すぐにMoveWindowを呼び出してサイズと位置を更新することでこれを達成しました. 問題は、スタイルが更新されたことを示すためにウィンドウが 1 フレームだけ点滅しますが、新しいサイズと位置が表示されないことです。次のフレームはすべて正しく見えますが、この単一フレームのアーティファクトを回避しようとしています。
API を呼び出す順序を逆にしてみましたが、アーティファクトの外観が変わるだけです。ウィンドウを非表示にし、API を呼び出してからウィンドウを表示することも試みましたが、これによりウィンドウが 1 フレームだけ消えてしまいます。
目的のプロパティを持つ新しいウィンドウを作成し、古いウィンドウを破棄するという選択肢があることは知っていますが、より安価な代替手段を見つけたかったのです。
これらの API を呼び出して、アトミックに視覚的に反映させる方法はありますか? おまけとして、結果として得られる複数の WM_SIZE メッセージを 1 つのイベントに結合することもできますが、それはメッセージ ハンドラーで自分で管理できます。