WinXP、VB6
アプリ1からアプリ2にメッセージ(アプリ2のテキストボックスに対し SendMessage(h, WM_SETTEXT, 0, a))が送られてきたとき、アプリ2のウインドウが点滅しその後タスクボタンが反転表示状態になってしまいました。そのときアプリ2自体がそのことに気付いて反転表示状態を直すという機能を付けたいと思っております。アプリ1とアプリ2は共に自作です。
言葉足らずかもしれませんが、どうかご教授のほどよろしくお願い致します。
貴殿の意図を汲み取れているか判りませんので、
適宜補足をお願いできればと思います。
タスクボタンの点滅や強調表示は、後述URLにあるような仕組みになっています。
http://www.microsoft.com/japan/technet/prodtechnol/winxppro/deploy/exappmigratoxp.mspx
「最前面ウィンドウの扱い」のあたりをご参考まで。
(手順1)アプリ1からアプリ2にメッセージ送信。
(手順2)アプリ1のウィンドウを最前面に設定しなおし。
というアプローチでどうでしょうか?
ご回答ありがとうございます。
すいません、分かりにくい説明でお手数おかけします;;
アプリ1からアプリ2にメッセージを送信したとき、アプリ2のタスクボタンが強調表示になってしまうときとならないときがありまして、ならないときはそのままでいいのですが、なってしまったとき、機能的には問題はないのですが、見栄えがわるいと申しましょうかそれを直したいと思っています。アプリ2のウインドウをアクティブにしたいというわけではなく、ならなくてもかまいません。アプリ2自体のコードで直せたらと思っております。そのためにはアプリ2自身が、アプリ2のタスクボタンが強調表示状態になってしまったということに気付く必要があると思いまして、そのような方法があるのでしたら教えていただきたいと思いまして質問させていただきました。
(ちなみに、アプリ1からはSendMessage(h, WM_SETTEXT, 0, a))しか送っておらず「SetForegroundWindow(アプリ2のハンドル)」のようなコードは実行していません。なのになぜかアプリ2のタスクボタンが点滅や強調表示してしまいます。
)
読みづらい文章で申し訳ありませんが、よろしくお願い致します。
>(手順1)アプリ1からアプリ2にメッセージ送信。
>(手順2)アプリ1のウィンドウを最前面に設定しなおし。
は実行されましたか?
ありがとうございます。
> >(手順1)アプリ1からアプリ2にメッセージ送信。
> >(手順2)アプリ1のウィンドウを最前面に設定しなおし。
>
> は実行されましたか?
もげさんの書かれた(手順2)の「アプリ1」は「アプリ2」の書き間違いかと思っていました。「アプリ2を最前面に設定しなおす」ということは行ってみましたが、「アプリ1を最前面に設定しなおす」ということはしていませんでした。また、アプリ1は常に最小化された状態のウインドウなので、最前面にしてみるという発想が思いつきませんでした。早速試してみようと思ったのですが、この現象は起きるときと起きないときがありまして、なぜか今はその現象が起きなくなってしまい、試す機会が得られず、まだ試めしておりません。
先日質問させていただいたとき以来、テキストボックスにSendMessageでメッセージを送る方法によるアプリ間通信は、いろいろな不具合の元なにると思いまして、現在は別の方法に改めて行っています。その方法では、今のところうまく動いていますので、今回はまことに勝手ではございますが、「解決」とさせていただきたいと思っております。
貴重なお時間をさいてくださいましてお礼申し上げます。
ツイート | ![]() |