投稿日 | : 2003/05/19(Mon) 13:35 |
投稿者 | : 龍 |
URL | : http://moonless.infoseek.livedoor.com/ |
タイトル | : アイコンの表示 |
タスクトレイにアイコンを表示し、
そのアイコンをアニメーションしたいのですが、
どうにもアイコンが歪んでしまいます。
これはVBの仕様なのでしょうか。
一般的に自らのアイコンを歪ませずに表示する場合、
AppName = IIf(Right$(App.Path, 1) = "\", App.Path, App.Path & "\") & App.EXEName & ".exe"
lngRtn = ExtractIconEx(AppName, clngMeIconNo, LIcon, SIcon, 1)
With nIcon
.cbSize = Len(nIcon)
.hWnd = hWnd
.uID = 0
.uFlags = Flags
.uCallbackMessage = WM_MOUSEMOVE
.hIcon = SIcon
Tip = StrConv(Msg & vbNullChar, vbFromUnicode)
For i = 0 To UBound(Tip)
.szTip(i) = Tip(i)
Next i
End With
lngRtn = Shell_NotifyIcon(Mode, nIcon)
というふうに、
exeファイルからスモールアイコンウィンドウハンドル(SIcon)を取得し、
NOTIFYICONDATA構造体(nIcon)のhIconにSIconをセットし、
タスクトレイに表示しますよね?
私が行っているやり方では、PictureBoxを使用して、
Dim objPic as StdPicture
Picture1.Picture = LoadPicture(strAniIcoPath , vbLPSmall)
Set StdPicture = Picture1.Picture
のようにobjPicにアイコンデータをセットし、
objPic.Handle
を上記のSIconと同じように使用してアイコンを表示させているのですが、
スモールアイコンを取得したはずなのに、
ラージアイコンを表示させたときのようにアイコンが歪んでしまいます。
これを歪まないように表示させる方法はあるのでしょうか?
それとも私のやり方がおかしいでしょうか?