バルーンツールチップにアイコンをつけるにはどうしたらいいんでしょう?
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);
これでバルーンはでるのですが、できたらアイコンもつけたいなぁと。
hIcon = LoadIcon(NULL, IDI_INFORMATION);
SendMessage(hTip, WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
としてみましたが、無理でした。
WM_SETICONではなくTTM_SETTITLEです。
おおー、できました。
ありがとうございます。
でもTTM_SETICONだと三種類のシステムアイコンしか出せないんですね。
0
No icon.
1
Info icon.
2
Warning icon
3
Error Icon
これ以外にカスタムアイコンなんかをひょうじすることってできないんでしょうか?
自分のやりたかったことはsubaruさんの助言で解決しましたので、解決マーク入れておきます。
Windows XP SP2以降であれば,LPARAMのパラメータにHICONを渡す事で,任意のアイコンを表示出来るようです。
http://msdn2.microsoft.com/en-us/library/ms650572.aspx
XP SP2適用済みですが、残念ながらダメでした。
アイコンはリソースに追加して、LoadIconで読み込んだものを使いましたが、空白が表示されるだけで無理なようです。
そもそもヘッダー(commctrl.h)にYuOさんが教えてくださったリンク先に載ってるような定数がなかったです(涙。VC6++ではダメなようでした。
ただcomctl32.dll のバージョンは 5.82.2900.2982 となってますし、いけるかなぁとLPARAMのパラメータに適当な数字をいろいろ設定してみたんですが
ヘッダーに記載されている定数以外空白のままでした。
みなさんいろいろとご教授ありがとうございました。
いい勉強になりました。
任意のアイコンでも普通に表示されましたけど・・・
ハンドルを渡すのはLPARAMじゃなくてWPARAMですがそこは合ってますか?
定数が定義されているかどうかは関係ないです。
SendMessage(hTip, TTM_SETTITLE, (WPARAM)LoadIcon((HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), MAKEINTRESOURCE(IDI_ICON1)), (LPARAM)szTipTitle); //アイコンとタイトルを設定
やはりダメみたいです。
ツイート | ![]() |