UpdateDisplay

LANSA

UpdateDisplay


Win32 では長い実行プロセスの間に画面を強制的にリフレッシュするよう制御する際に UpdateDisplay メソッドを呼び出すことができます。Win32 ランタイムは個別の制御を特定することができ、実際に UI の一部を更新することができました。

しかし、DirectX ランタイムは違う方式で動き、この方法は使用することができません。UpdateDisplay はフォーム全体の更新を引き起こします。

ほとんどの場合、これはさほど重要なことではありませんが、UpdateDisplay が繰り返し呼び出される場合には、明らかなパフォーマンスの低下を引き起こします。

この状況は、プログレス・バーを使用している際によく発生します。プログレス・バーは自動的に UpdateDisplay を使って最新の値を反映します。下の例では、簡単なループが実行され、プログレス・バーとスタートボタンのキャプションがその度に更新されます。

上の Win32 では、スタートボタンは更新されません。UpdateDisplay はプログレス・バー固有のものになります。しかし、DirectX では、フォーム全体が更新されます。


このフォームのコードは、このドキュメントの「サンプルソース」のセクションで確認することができます。

この状況に対応するために、プログレス・バーを更新したり、 UpdateDisplay を繰り返しのたびに実行するのではなく、簡単な検査を追加することで、10回に1回だけ更新がかかるようにすることができます。