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

解決


クレしん  2007-09-23 23:14:51  No: 66420  IP: 192.*.*.*

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

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-23 23:23:06  No: 66421  IP: 192.*.*.*

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

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

編集 削除
subaru  2007-09-24 02:19:57  No: 66422  IP: 192.*.*.*

WM_SETICONではなくTTM_SETTITLEです。

編集 削除
クレしん  2007-09-24 16:29:24  No: 66423  IP: 192.*.*.*

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

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

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

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

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

編集 削除
YuO  2007-09-24 18:41:02  No: 66424  IP: 192.*.*.*

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

編集 削除
クレしん  2007-09-25 01:36:05  No: 66425  IP: 192.*.*.*

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

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

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

編集 削除
subaru  2007-09-25 10:39:38  No: 66426  IP: 192.*.*.*

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

編集 削除
クレしん  2007-09-25 17:40:39  No: 66427  IP: 192.*.*.*

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

やはりダメみたいです。

編集 削除