NotifyIconのszTipですが、長さに限度はありますか?
あちこちサンプルを見てもみなさん
szTip As String * 64 で宣言しています。
どなたかご指南のほどをよろしくお願いいたします。
szTipでそんなに長いのは表示しないものなのでしょうか?
ん〜、ちょいとググって見ましたが
http://madia.world.coocan.jp/vb/vb_bbs2/200403_04030050.html
を確認すると、128でも表示できそうな雰囲気が。。。
私のソースが上げられているので、私が128にした根拠を書きます。
szTipが含まれるNOTIFYICONDATAの定義を見てみると(ShellAPI.h)
typedef struct _NOTIFYICONDATAW {
DWORD cbSize;
HWND hWnd;
UINT uID;
UINT uFlags;
UINT uCallbackMessage;
HICON hIcon;
#if (_WIN32_IE < 0x0500)
WCHAR szTip[64];
#else
WCHAR szTip[128];
#endif
#if (_WIN32_IE >= 0x0500)
DWORD dwState;
DWORD dwStateMask;
WCHAR szInfo[256];
union {
UINT uTimeout;
UINT uVersion;
} DUMMYUNIONNAME;
WCHAR szInfoTitle[64];
DWORD dwInfoFlags;
#endif
#if (_WIN32_IE >= 0x600)
GUID guidItem;
#endif
} NOTIFYICONDATAW, *PNOTIFYICONDATAW;
となっています。
いなさんがあげられている私のサンプルは、バルーンヘルプを使うサンプルなので、shell32.dllのバージョンは5以上であるはずなのでszTipを128にしました。
shell32.dllのバージョンによって構造体を使い分けると良いと思います。
あっと、
これじゃ回答になっていませんね。
> NotifyIconのszTipですが、長さに限度はありますか?
shell32.dllのバージョンにより限度が変わります。
5未満の場合
64
5以上の場合
128
いろいろな環境で動くことを想定しているなら、64としたほうが良いと思います。
karaさん、ありがとうございました。
そうなんですね。
実は128bytesでも足りないようなものを表示しようとしていました。(全角5x10行)
他の手を考えて見ます。
ツイート | ![]() |