タスクトレイのチップが 64 …

XP 環境で,タスクトレイのチップが 64 文字で切れてしまっている.
VC8.exe は 64 で切られることはないが,VC 9 以降だとうまくない?
Win 7 環境での動作は問題ない.
まだ詳しく調べられてないが,とりあえずメモ.


2015/09/08
どうも _WIN32_WINNT によるみたい.

  Win UNICODE MBCS NOTIFYICONDATA
VC 6 400 152 88 szTip[64]
VC 7 501 936 488 dwInfoFlag
VC 8 502 936 488  
VC 9 600 956 508 hBallonIcon
VC10 601 956 508  
VC11 601 956 508  
VC12 601 956    

  Win は _WIN32_WINNT .
cbSize を NOTYFYICONDATA_V3_SIZE と指定すれば良いのか?
今回は,意図せず 64 文字で切れていたことを避けたかっただけなので,次の様に変更.
   NOTIFYICONDATA nid ; ::ZeroMemory(&nid,sizeof(NOTIFYICONDATA)) ;
   long maxLenTip = countof(nid.szTip)-1 ;
   #if (_MSC_VER >= 1500) // VC 9 ~
     if (::GetWindowsVersion() < 6) {
       maxLenTip = 64-1 ;
       }
   #endif
   if (::GetWindowsVersion() > maxLenTip) {
     …
     }

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ



コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください