.NETは
ちょっとコンポーネントの数が増えると、
画面ロードとかのタイミングで、劇的に描画がちらつきます。
私はあまり気にならないのですが、どうしても何とかして欲しいとの要望があり
以下の対応をしました。
こういう宣言をどこかにしておきます。
Private Declare Function SendMessage Lib "user32.dll" _
Alias "SendMessageA" _
(ByVal hwnd As Int32, _
ByVal wMsg As Int32, _
ByVal wParam As Int32, _
ByVal lParam As Int32) As Int32
Private Const WM_SETREDRAW As UInt32 = 11
実際に使用する箇所での前後処理
SendMessage(Me.Handle, WM_SETREDRAW, 0, 0)
実際の処理
SendMessage(Me.Handle, WM_SETREDRAW, 1, 0)
これで処理中の描画を抑制できます。
というか、設計段階で何とかならなかったのかマイクロソフト!
WPFではこんなことする必要はないだろうと推測しますが、
同時にものすごく処理が遅いだろうということは容易に想像できます。
Flashにしても何にしても、アニメーションをサポートしたUIは
部品点数が多いと、使い物にならなくなる位遅くなるのが世の常。
Visual Studio2010が楽しみだ。
0 件のコメント:
コメントを投稿