この質問に似た投稿をいくつか見ましたが、これには微妙な違いがあります。ユーザー インターフェイスが他のプログラムの背後にあるプログラムがありますが、結果を表示する左上隅に表示される子フォームがあり、モニターのこの部分が複製され、一般に表示されます。 「スコアボード」。この「結果」フォームをすべての上に置きたい (Taskmanager は問題ない、それでいい)。「Word」、「IE」、「Excel」など、実行される他のアプリケーションは、トップに登ろうとしません。
親の "SetWindowPos" を "TopMost" に設定し、子も "TopMost" に設定すると、両方のウィンドウが一番上に表示されますが、ユーザー インターフェイス フォームも何かの上に置かれます。ユーザーが別のアプリケーションを起動する必要がある場合、フォームはその上に置かれ、他のアプリケーションは使用できなくなりますが、結果フォームの下に置かれます。タイマーが起動するまでカバーされるため、タイマーを使用して上部に移動することはできません。これは許可されていません。
結果フォームを最上位に設定しただけでは、すべての最上位にとどまりません。親も最上位にいる必要があるように見えますか? これを回避して子を上に置き、親を下に座らせる方法はありますか? それとも、子も最上位にするには、親が最上位である必要がありますか? move イベントを取得して子の上に移動するのを防ぐため、親は子の上に座ることができません。
私は Delphi でプログラミングしているので、どのような回答も Delphi で行うのが最適ですが、より一般的なものは何でもかまいません。とにかく Windows への呼び出しになると思います。
ありがとう