メインウィンドウとポップアップで構成されたアプリケーションがあります。他のすべてのアプリケーションの上になりたいです。メインウインドウに「ウィンドウA」、トップポップアップに「ウインドウB」、別のアプリケーションのウインドウに「ウインドウC」を呼んでみましょう。私はこのコードを使用して上にウィンドウBを設定してい他のすべてのアプリケーションの上にあるDelphiウィンドウ
:
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NoMove or SWP_NoSize);
予想通りこれは動作しますが、私は別のアプリケーション(ウインドウC)を開くことができますし、ウィンドウBはトップを続けています。しかし、ウィンドウタイトルをクリックすると、「ウィンドウA」が「ウィンドウC」の上に表示されます。ウィンドウBの任意の部分をクリックするとメインウィンドウ(ウィンドウA)が正面にならないようにする方法はありますか?
ウィンドウAはウィンドウBによって所有されていますか? – andlabs
BのCreateParamsをオーバーライドしてWndParent = 0を設定します。ここで何度も尋ねられます。ところで、あなたはFormStyleとしてfsStayOnTopを使うことができます。 –
明らかに、他のすべてのウィンドウの上にいることはできません。あなたは同じことをしたい他のウィンドウに負けてしまいます。 AはWin32の意味でのBの所有者です。 SertacがBを所有しないようにするために何を言うか。 –