1

別のSplitContainerのパネル内にSplitContainerを追加しました。スプリッターが移動すると、すべてが正常に再描画されます。ただし、メインフォームの最大化/復元ボタンによってメインのSplitConainerのサイズが変更された場合、内部のSplitContainerのサイズ変更は正しく機能しません。

スプリッターを動かすと、すべてがうまく再描画されます。各SplitPanelSizeChangedイベントのすべてを無効化しようとしましたが、うまくいきませんでした。何か考えはありますか?

4

1 に答える 1

3

これが原因だと思います。複雑なレイアウトをいくつかの単純なレイアウトに単純化した後、問題はなくなりました。

http://social.msdn.microsoft.com/forums/en-US/windowsuidevelopment/thread/25181bd5-394d-4b94-a6ef-06e3e4287527/

少し調査したところ、特定のネスト レベルに達すると Windows が WM_SIZE の送信を停止することがわかりました。つまり、親ウィンドウで WM_SIZE を処理するときに子ウィンドウのサイズを変更しようとすると、子ウィンドウに WM_SIZE が送信されません。USER スタッフ/アップデート/サービス パックに応じて、WM_SIZE の伝播を停止する最大ネスティング レベルは 15 から 31 まで変化し、最新の XP 32 ビット/SP2 ではさらに高い (実質的に到達不能) 場合があります。しかし、XP x64 ではまだ少なすぎます。また、Vista の一部のビルドでは、他のメッセージに似たような問題が発生します。

したがって、これは確かに Windows のバグです。

于 2011-07-15T01:09:05.230 に答える