QA@IT
«回答へ戻る

5629
 
 Form2が独立したクラスライブラリなどで、継承可能であれば継承してWndProcを上書きすればいろいろできそうな気はします。
 そして ObserverパターンのようにForm2に状態を通知してもらう機能も拡張すればどうでしょう。
+
+
+----
+
+イベントだとピッタリのものはなさそうに思います。
+Deactivateなどもプラグインの起動のトリガがユーザーの操作でなければ発生しないでしょうし不完全ですね。
+
+
+やってみないとわかりませんが、Win32APIを使ってローカルフックでも可能かもしれません。
+WM_CREATEだと拾いすぎるので、WM_ACTIVATEで知らないハンドルなら処理するという形でしょうか。
+
+
+どれぐらいの遅延を気にしているかはわかりませんが、タイマーでもそんなには悪くないと思いますけどね。
+フックしてウィンドウメッセージ捌くのとタイマーで定期的に呼ばれてプロパティ見るののどちらがコストが高いかはやってみないとわかりませんが。

Form2のコードはいじれない前提で話します。

Form2が独立したクラスライブラリなどで、継承可能であれば継承してWndProcを上書きすればいろいろできそうな気はします。
そして ObserverパターンのようにForm2に状態を通知してもらう機能も拡張すればどうでしょう。


イベントだとピッタリのものはなさそうに思います。
Deactivateなどもプラグインの起動のトリガがユーザーの操作でなければ発生しないでしょうし不完全ですね。

やってみないとわかりませんが、Win32APIを使ってローカルフックでも可能かもしれません。
WM_CREATEだと拾いすぎるので、WM_ACTIVATEで知らないハンドルなら処理するという形でしょうか。

どれぐらいの遅延を気にしているかはわかりませんが、タイマーでもそんなには悪くないと思いますけどね。
フックしてウィンドウメッセージ捌くのとタイマーで定期的に呼ばれてプロパティ見るののどちらがコストが高いかはやってみないとわかりませんが。

Form2のコードはいじれない前提で話します。

Form2が独立したクラスライブラリなどで、継承可能であれば継承してWndProcを上書きすればいろいろできそうな気はします。
そして ObserverパターンのようにForm2に状態を通知してもらう機能も拡張すればどうでしょう。


----

イベントだとピッタリのものはなさそうに思います。
Deactivateなどもプラグインの起動のトリガがユーザーの操作でなければ発生しないでしょうし不完全ですね。


やってみないとわかりませんが、Win32APIを使ってローカルフックでも可能かもしれません。
WM_CREATEだと拾いすぎるので、WM_ACTIVATEで知らないハンドルなら処理するという形でしょうか。


どれぐらいの遅延を気にしているかはわかりませんが、タイマーでもそんなには悪くないと思いますけどね。
フックしてウィンドウメッセージ捌くのとタイマーで定期的に呼ばれてプロパティ見るののどちらがコストが高いかはやってみないとわかりませんが。

回答を投稿

Form2のコードはいじれない前提で話します。

Form2が独立したクラスライブラリなどで、継承可能であれば継承してWndProcを上書きすればいろいろできそうな気はします。
そして ObserverパターンのようにForm2に状態を通知してもらう機能も拡張すればどうでしょう。

Form2のコードはいじれない前提で話します。

Form2が独立したクラスライブラリなどで、継承可能であれば継承してWndProcを上書きすればいろいろできそうな気はします。
そして ObserverパターンのようにForm2に状態を通知してもらう機能も拡張すればどうでしょう。