最小化图标消失解决方法

最小化图标消失
我用pb做了一个能最小化到托盘的程序,但是当鼠标移动到图标上时,图标就消失,为什么呢?
附程序:(也是在csdn上淘的)
新建一个窗口w_main  
   
  首先定义Global External Functions  
  Public Function Integer Shell_NotifyIcon (Long dwMessage, Any lpData) Library "shell32" Alias For "Shell_NotifyIconA"  
  Public Function Long LoadImage (Long hInst, String lpsz, Long un1, Long n1, Long n2, Long un2) Library "user32" Alias For "LoadImageA"  
  Public Function Long DestroyIcon (Long hIcon) Library "user32" Alias For "DestroyIcon"  
  Public Function Long SetForegroundWindow (Long hwnd) Library "user32" Alias For "SetForegroundWindow"  
  Public Function Long OpenIcon (Long hwnd) Library "user32" Alias For "OpenIcon"  
  Public Function Long ShowWindow (Long hWnd, Long nCmdShow ) Library "user32" Alias For "ShowWindow"  
   
  然后定义Instance Variables  
  Constant Long NIM_ADD = 0  
  Constant Long NIM_MODIFY = 1  
  Constant Long NIM_DELETE = 2  
  Constant Long NIF_MESSAGEorNIF_ICONorNIF_TIP = 7  
  Constant Long WM_MOUSEMOVE = 512  
  Constant Long IMAGE_ICON = 1  
  Constant Long LR_LOADFROMFILE = 16  
  Long hIcon  
  Boolean CanClose  
   
  然后定义1个window structure  
  名称:notifyicondata  
  内容:  
  long cbsize  
  long hwnd  
  long uid  
  long uflags  
  long ucallbackmessage  
  long hicon  
  Any szTip  
   
  然后定义3个window function  
  1、函数名:setnotifyicondata  
  返回值:notifyicondata  
  参数为  
  integer hwnd  
  integer id  
  long flags  
  long callbackmessage  
  long icon  
  string tip  
  函数体:  
  // NotifyIconData SetNotifyIconData (Long hWnd, Long ID, Long Flags, Long CallbackMessage, Long Icon, String Tip)  
   
  Char MyTip [64]  
   
  NotifyIconData NidTemp  
   
  NidTemp.cbSize = 88 // Len (NidTemp)  
  NidTemp.hWnd = hWnd  
  NidTemp.uID = ID  
  NidTemp.uFlags = Flags  
  NidTemp.uCallbackMessage = CallbackMessage  
  NidTemp.hIcon = Icon  
  MyTip = Tip + Char (0)  
  NidTemp.szTip = MyTip  
   
  return NidTemp  
  2、函数名:addtotray  
  返回值:boolean  
  无参数  
  函数体:  
  // Boolean AddToTray ()  
   
  Any nid  
   
  if hIcon = 0 then  
  // the icon has not been loaded yet  
  hIcon = LoadImage(0, "SysTray.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE)  
  end if  
   
  if hIcon = 0 then  
  MessageBox ("Error", "Can't load icon!")