NotifyIconのszTipのサイズの限度


連休ぷろぐらまー  2005-05-02 18:04:30  No: 121394

NotifyIconのszTipですが、長さに限度はありますか?
あちこちサンプルを見てもみなさん
szTip As String * 64 で宣言しています。
どなたかご指南のほどをよろしくお願いいたします。
szTipでそんなに長いのは表示しないものなのでしょうか?


いな  2005-05-02 19:17:20  No: 121395

ん〜、ちょいとググって見ましたが

http://madia.world.coocan.jp/vb/vb_bbs2/200403_04030050.html

を確認すると、128でも表示できそうな雰囲気が。。。


kara  2005-05-03 01:46:49  No: 121396

私のソースが上げられているので、私が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のバージョンによって構造体を使い分けると良いと思います。


kara  2005-05-03 01:53:39  No: 121397

あっと、
これじゃ回答になっていませんね。

> NotifyIconのszTipですが、長さに限度はありますか?
shell32.dllのバージョンにより限度が変わります。
5未満の場合
  64
5以上の場合
  128

いろいろな環境で動くことを想定しているなら、64としたほうが良いと思います。


連休ぷろぐらまー  2005-05-03 05:03:08  No: 121398

karaさん、ありがとうございました。
そうなんですね。

実は128bytesでも足りないようなものを表示しようとしていました。(全角5x10行)
他の手を考えて見ます。


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

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






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