写了6,7年的vc程序,碰到这么一个非常古怪的有关问题(关于托盘+debug,release),请高手解答

写了6,7年的vc程序,碰到这么一个非常古怪的问题(关于托盘+debug,release),请高手解答
单文档SDI程序,关于托盘,debug,release。

在MainFrame.h中定义:
#define WM_ICONMESSAGE WM_USER+13
class   CMainFrame   :   public   CFrameWnd
{
        ......
        //}}AFX_MSG
afx_msg   void   OnIconMessage(WPARAM   wParam,LPARAM   lParam);
                  afx_msg   void   OnIconOpen(WPARAM   wParam,LPARAM   lParam);
                  afx_msg   void   OnIconExit(WPARAM   wParam,LPARAM   lParam);
DECLARE_MESSAGE_MAP()
        public:
HMENU m_menuIcon;
}


在MainFrame.cpp中
int   CMainFrame::OnCreate(LPCREATESTRUCT   lpCreateStruct)
{
                  NOTIFYICONDATA nid;
nid.uID=ID_NID;
nid.cbSize=sizeof(nid);
nid.hIcon=LoadIcon(AfxGetApp()-> m_hInstance,MAKEINTRESOURCE(IDR_MAINFRAME));
nid.hWnd=m_hWnd;
nid.uCallbackMessage=WM_ICONMESSAGE;
nid.uFlags=NIF_ICON|NIF_TIP|NIF_MESSAGE;
strcpy(nid.szTip, "远程机房空调集中监控 ");
Shell_NotifyIcon(NIM_ADD,&nid);

m_menuIcon=CreatePopupMenu();
AppendMenu(m_menuIcon,0,IDM_ICON_OPEN, "打开窗口 ");
AppendMenu(m_menuIcon,0,IDM_ICON_EXIT, "退出程序 ");
}

重载
LRESULT   CMainFrame::WindowProc(UINT   message,   WPARAM   wParam,   LPARAM   lParam)  
{
//   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class
if(message==WM_SYSCOMMAND)
{
if(wParam==SC_MINIMIZE)
{
ShowWindow(SW_HIDE);
return   0;
}
}
return   CFrameWnd::WindowProc(message,   wParam,   lParam);
}


BEGIN_MESSAGE_MAP(CMainFrame,   CFrameWnd)
                    .......................
//}}AFX_MSG_MAP
ON_MESSAGE(WM_ICONMESSAGE,OnIconMessage)
                  ON_COMMAND(IDM_ICON_OPEN,OnIconOpen)
                  ON_COMMAND(IDM_ICON_EXIT,OnIconExit)
END_MESSAGE_MAP()

void   CMainFrame::OnIconMessage(WPARAM   wParam,LPARAM   lParam)
{
switch(lParam)
{
case   WM_LBUTTONDOWN:
case   WM_LBUTTONDBLCLK:
ShowWindow(SW_SHOW);
return;
case   WM_RBUTTONUP:
POINT pt;
::SetActiveWindow(m_hWnd);
GetCursorPos(&pt);
TrackPopupMenu(m_menuIcon,TPM_RIGHTALIGN,pt.x,pt.y,0,m_hWnd,NULL);
return;
}
}

void   CMainFrame::OnIconOpen(WPARAM   wParam,LPARAM   lParam)
{
                ShowWindow(SW_SHOW);
}

void   CMainFrame::OnIconExit(WPARAM   wParam,LPARAM   lParam)
{
                OnClose();
}

问题现象如下:
      1.在debug模式下一切正常.  
      2.在release模式下:一旦托盘菜单弹出,点击任一个都会报访问内存错误,或该程序遇到问题需要关闭.即使把ShowWindow(SW_SHOW)和OnClose();这两句注释掉也一样。

急求高手释疑,不甚感激!!!!



------解决方案--------------------
老大 OnIconExit 是 ON_COMMAND包起来的呀,无参吧
ON_MESSAGE 才需要WPARAM wParam,LPARAM lParam吧