バルーンツールチップにアイコンをつけるには?

解決


クレしん  2007-09-24 08:14:51  No: 66420

バルーンツールチップにアイコンをつけるにはどうしたらいいんでしょう?

hTip = CreateWindow(TOOLTIPS_CLASS, NULL, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP | TTS_BALLOON, //TTS_BALLOON を指定するだけ
          CW_USEDEFAULT, CW_USEDEFAULT,
          CW_USEDEFAULT, CW_USEDEFAULT,
          hwnd, NULL, (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL);
    
    ti.cbSize   = sizeof(TOOLINFO);
    ti.uFlags   = TTF_SUBCLASS;
    ti.hwnd     = hwnd;
    ti.uId      = IDT_TIP;
    ti.lpszText = szTip;
    SendMessage(hTip, TTM_ADDTOOL, 0, (LPARAM)&ti);

これでバルーンはでるのですが、できたらアイコンもつけたいなぁと。


クレしん  2007-09-24 08:23:06  No: 66421

hIcon = LoadIcon(NULL, IDI_INFORMATION);
SendMessage(hTip, WM_SETICON, ICON_SMALL, (LPARAM)hIcon);

としてみましたが、無理でした。


subaru  2007-09-24 11:19:57  No: 66422

WM_SETICONではなくTTM_SETTITLEです。


クレしん  2007-09-25 01:29:24  No: 66423

おおー、できました。
ありがとうございます。

でもTTM_SETICONだと三種類のシステムアイコンしか出せないんですね。

0
No icon.
1
Info icon.
2
Warning icon
3
Error Icon

これ以外にカスタムアイコンなんかをひょうじすることってできないんでしょうか?

自分のやりたかったことはsubaruさんの助言で解決しましたので、解決マーク入れておきます。


YuO  2007-09-25 03:41:02  No: 66424

Windows XP SP2以降であれば,LPARAMのパラメータにHICONを渡す事で,任意のアイコンを表示出来るようです。
http://msdn2.microsoft.com/en-us/library/ms650572.aspx


クレしん  2007-09-25 10:36:05  No: 66425

XP SP2適用済みですが、残念ながらダメでした。
アイコンはリソースに追加して、LoadIconで読み込んだものを使いましたが、空白が表示されるだけで無理なようです。
そもそもヘッダー(commctrl.h)にYuOさんが教えてくださったリンク先に載ってるような定数がなかったです(涙。VC6++ではダメなようでした。

ただcomctl32.dll のバージョンは 5.82.2900.2982 となってますし、いけるかなぁとLPARAMのパラメータに適当な数字をいろいろ設定してみたんですが
ヘッダーに記載されている定数以外空白のままでした。

みなさんいろいろとご教授ありがとうございました。
いい勉強になりました。


subaru  2007-09-25 19:39:38  No: 66426

任意のアイコンでも普通に表示されましたけど・・・
ハンドルを渡すのはLPARAMじゃなくてWPARAMですがそこは合ってますか?
定数が定義されているかどうかは関係ないです。


クレしん  2007-09-26 02:40:39  No: 66427

SendMessage(hTip, TTM_SETTITLE, (WPARAM)LoadIcon((HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), MAKEINTRESOURCE(IDI_ICON1)), (LPARAM)szTipTitle); //アイコンとタイトルを設定

やはりダメみたいです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加