■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#5791-0
実行中のアプリがアクティブでなくなったイベントを拾いたい。
はじめまして。もとといいます。
現在VB6.0, sp5, win2000 でアプリケーションを作っています。
SetWindowPos APIを使って、あるウィンドウを「常に最前面に表示」させておりますが、
実行中のアプリから、別のアプリのウィンドウをアクティブにしたとき、
SetWindowPosで最前面に指定したウィンドウがずっと画面に表示されて
困っています。実行中のアプリがアクティブの時だけそのウィンドウを
最前面にして別アプリがアクティブになったらそのイベントを拾って
SetWindowPosで再び最前面を解除しようと思っていますが、
自アプリアクティブでなくなるイベントを拾うことはできないでしょうか。
またはそのようなイベントを使わなくても同様のことが実現できる方法が
あるのでしょうか。

ご存知の方、ご教授お願いします。
失礼します。
#5792-0
RE#5791:実行中のアプリがアクティブでなくなったイベントを拾いたい。
> はじめまして。もとといいます。
> 現在VB6.0, sp5, win2000 でアプリケーションを作っています。
> SetWindowPos APIを使って、あるウィンドウを「常に最前面に表示」させておりますが、
> 実行中のアプリから、別のアプリのウィンドウをアクティブにしたとき、
> SetWindowPosで最前面に指定したウィンドウがずっと画面に表示されて
> 困っています。実行中のアプリがアクティブの時だけそのウィンドウを
> 最前面にして別アプリがアクティブになったらそのイベントを拾って
> SetWindowPosで再び最前面を解除しようと思っていますが、
> 自アプリアクティブでなくなるイベントを拾うことはできないでしょうか。
> またはそのようなイベントを使わなくても同様のことが実現できる方法が
> あるのでしょうか。
> 
> ご存知の方、ご教授お願いします。
> 失礼します。

SetWindowPos の Parent 指定に自アプリの hWnd を指定してやるといいと思います。
#って、そんなことできなかったっけ?(^^;;;
#5793-0
RE#5792:実行中のアプリがアクティブでなくなったイベントを拾いたい。
> SetWindowPos の Parent 指定に自アプリの hWnd を指定してやるといいと思います。
> #って、そんなことできなかったっけ?(^^;;;

そうだ、API の SetParent 関数だった。
あれで、どうにかこうにかこねくりまわして無理?(^^;;;
#5796-0
RE#5791:実行中のアプリがアクティブでなくなったイベントを拾いたい。
> SetWindowPos APIを使って、あるウィンドウを「常に最前面に表示」させておりますが、
> 実行中のアプリから、別のアプリのウィンドウをアクティブにしたとき、
> SetWindowPosで最前面に指定したウィンドウがずっと画面に表示されて
ツールボックスの様な感じなら・・・

単に「Show メソッド」で第二引数のオーナーを指定するだけ
でOKでしょう。


でなければ・・・サブクラス化して、メッセージ(WM_)で
処理するとか。
#5827-0
RE#5791:実行中のアプリがアクティブでなくなったイベントを拾いたい。
質問者のもとです。
たくさんのアイデアありがとうございます。
ゆう(U)さんのおっしゃった方法がまさに私の
求めていたのものでありました。
また、匿名で投稿してくださった方のSetParent 関数も
試してみたいと思います。
たくさんの勉強をさせていただき、ありがとうございました。
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)