-1

他のウィンドウの前に留まるウィンドウを持つアプリがありますが、Z オーダーをチェックし、一番上でない場合は前方に移動することで、他の「最前面に留まる」ウィンドウの前にも留まります。私のウィンドウにコンボボックスやヒントのようなものをポップアップするコントロールがある場合を除いて、それはうまくいきます。次に、ウィンドウがヒントなどの前に移動します。

私が試みたロジックは、前のウィンドウのハンドルを見て、その所有者 (getwindow (h,GW_OWNER) を使用) または親 (getparent(h)) が私のウィンドウであるかどうかを確認しようとします。私のウィンドウがその親の親などであるかどうかを確認するために再帰的に呼び出し続けることに失敗しました。

これは機能せず、アプリケーションはポップアップ コントロールの前に自分自身を配置しようとしますが、これは理想的ではありません。他のアプローチに関する提案はありますか?

ありがとうテリー

4

3 に答える 3

0

ヒントには、アプリケーション ハンドルが親および所有者として含まれています。したがって、 h=application.handle をテストすると、問題が解決します。コンボボックスは別の話のようで、親を取得するための呼び出しは 65556 を返し、所有者は 0 を返します。

于 2013-07-11T04:08:58.543 に答える
0

Sertac Akyuz が示唆したように、ウィンドウのプロセス ID を追跡し、それを自分の ID と比較することは、ウィンドウの所有権を識別する方法です。

于 2013-07-11T22:52:38.497 に答える