タスクトレイに追加されたアイコンに強制的にツールチップを表示する方法 – プログラミング – Home

タスクトレイに追加されたアイコンに強制...
 
通知
すべてクリア

[解決済] タスクトレイに追加されたアイコンに強制的にツールチップを表示する方法


Takahashi
 Takahashi
(@Takahashi)
ゲスト
結合: 21年前
投稿: 45
Topic starter  

こんにちは、高橋と申します。

タスクトレイ常駐型のアプリケーションを製作していますが、
タイトルの件が解決できずにおります。

開発環境は WinndowsXP SP1 , Visual C++ .NET 2003 で、
ダイアログベース, MFC で開発しております。

現在、タスクトレイにアイコンを表示する、ポップアップメニューを表示する
等のことは、実現できております。

通常、タスクトレイに表示させたアイコンにマウスを乗せると
ツールチップが表示されると思うのですが、このツールチップを
強制的に(ユーザがマウスを乗せなくとも)アプリケーション側から
表示させる方法を探しております。

具体的な例としては、メールを扱うソフトであれば、「新規メール受信」
等メッセージを表示して、ユーザにバックグラウンドでの動作を
通知するなどです。

解決策として、別にウインドまたは、ツールチップを製作して、
アイコンの横に自分で表示させる等のことも考えたのですが、
できれば標準のツールチップで実現できた方が簡単と判断して、
保留しております。

どなたか良い解決方法のご教授、お願い致しします。


引用未解決
トピックタグ
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

CToolTipCtrlを使用してはダメですか?
標準のツールチップが『タスクトレイに表示させたアイコンにマウスを乗せる』と表示されるツ
ールチップの事をおっしゃっているとしたら、同じモノだと思います。


返信引用
Takahashi
 Takahashi
(@Takahashi)
ゲスト
結合: 21年前
投稿: 45
Topic starter  

ひろぴー さんレスありがとうございます。

質問の内容がわかりにくくてすいませんでした。
ひろぴーさんの、おっしゃるとおり CToolTipCtrl を使用して
表示するのと同じことをしたいのです。

ただ、楽をしようとして

NOTIFYICONDATA NotifyIconData;
...

_tcscpy(NotifyIconData.szTip, _T(表示させたい文字));
::Shell_NotifyIcon(NIM_MODIFY, &NotifyIconData);

で、設定をした文字をアプリケーションから
表示できたらと思ったのですが、やはりダメなようですね。
素直に CToolTipCtrl を使用するようにします。

ただ、自力でツールチップを好きな位置へ表示する場合の方法が、
よくわかりません。私がやったことがあるのは、CToolTipCtrl::RelayEvent()
を PreTranslateMessage() 内で呼び出してマウスメッセージを中継する
方法なのですが、LPMSG lpMsg の lpMsg を自分で制作するとして、
コントロールの登録はどうすればいいのでしょうか?

私の理解では、CToolTipCtrl::AddTool で登録したコントロール内に
RelayEvent() で、引数に設定された pMsg からマウスのメッセージを得て
マウスポインタが重なった場合、所定の時間をおいてツールチップが
表示されるだったと思うのですが、今回の場合はタスクトレイ内のアイコン
に重なった場合なので、アイコンをコントロールとして AddTool
に指定する方法があるのでしょうか?
それとも、ほかの方法で指定する方法があるのでしょうか?

よろしくお願いします。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

MFC はシロウトですが、SDKなら…
OS が Win2k 以降なら、バルーンスタイルのチップなら任意のタイミングで出せると思
います。
NOTIFYICONDATA に NIF_INFO フラグとその他必要な項目を設定し、出したいタイミング
で NIM_MODIFY で呼んでやればよいかと。

#というか、任意のタイミングでバルーンチップを出す方法はこれでいいんでしょう
か?


返信引用
Takahashi
 Takahashi
(@Takahashi)
ゲスト
結合: 21年前
投稿: 45
Topic starter  

シャノンさんレスありがとうございました。

シャノンさんの方法で、バルーンチップを表示することができ、
問題は解決いたしました。ありがとうございました。

問題は、もちろん解決したのですが、バルーンチップというものが
表示されてみると、「ああ・・・これか」といった感じで、
今まで気にもとめていなかったのですが、そういえばこんなのでるな・・・と、
とても勉強になりました。
これは使えそうなので、今後のアプリケーション開発等に使っていこうと思います。

ひろぴーさん、シャノンさん、また、このスレッドを呼んでくださった方
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました