1

ウィンドウの上部または左側の境界線を半速でドラッグすると、ウィンドウの反対側の端が振動することに気付くはずです。ドラッグされますが、サイズを大きくするために再調整されます。

動的にサイズ変更するアイテムがある場合、問題はさらに悪化します。その後、一連のコントロールが画面上でスライドしてサイズ変更を開始します。

これらの一時的な影響を防ぐ方法はありますか?

たとえば、のようなメッセージに応答する特定WM_SIZEのシーケンスは、これを抑制することができますか?知らない。

(これは、私が見たすべてのフレームワークで発生するようです。プレーンなWin32でも発生します。エクスプローラーなどを開いて、その上端または左端をドラッグするだけで、意味がわかります。)

4

2 に答える 2

1

WM_WINDOWPOSCHANGINGメッセージに応答し、構造体のメンバーにSWP_NOCOPYBITSフラグを設定します。flagsWINDOWPOS

于 2012-07-05T22:55:24.627 に答える
0

2018年のアップデート。SOでよく言及されるWM_WINDOWPOSCHANGINGおよび関連するWM_NCCALCSIZEトリックは、XP / Vista / 7ではうまく機能しましたが、Aeroが古い問題を覆い隠す、または悪化させるサイズ変更の問題の新しいレイヤーを追加するため、Win8/10ではもはや十分ではありません。

Win8 / 10の問題は、システム上のすべてのアプリのピクセルを合成する別のプロセスであるDWM.exeでピクセルの不要なコピーが発生しているため、解決がはるかに困難です。

WM_NCCALCSIZE何が起こっているのか、XP / Vista / 7レイヤー(Win8 / 10にまだあります!)で問題を解決するためのサンプルコード、および8/10の部分的な解決策については、このQ&Aを参照してください。

ウィンドウのサイズを変更するとき、特に左/上境界線をドラッグするときに、醜いジッター/フリッカー/ジャンプをスムーズにするにはどうすればよいですか(Win 7-10; bg、bitblt、DWM)?

于 2018-10-26T09:00:42.297 に答える