在制作右下角托盘区图标的右键菜单时发现:如果菜单弹出后不作任何选择,而按桌面其它地方,菜单在托盘区是不会消失的,直到你在菜单上作出选择,怎么解决这个问题?

解决方案 »

  1.   

    menu.LoadMenu(IDR_POPUP_MENU);
    CPoint mouse;
    GetCursorPos(&mouse);
    CMenu * submenu=menu.GetSubMenu(0);

    ::SetForegroundWindow(m_tnid.hWnd);
    submenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON,mouse.x,mouse.y,this);
    menu.DestroyMenu();m_tnid是NOTIFYICONDATA结构实例
      

  2.   

    CMenu mymenu;
    mymenu.LoadMenu(IDR_MENU1);
    CMenu *menu1 = mymenu.GetSubMenu(3);
    ASSERT(menu1!=NULL);
    // ::ClientToScreen(&point);
    ClientToScreen(&point);
    menu1->TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this);
    看看这段代码.