我在任务栏通知区添加了一个图标,然后再给该图标定制了一个右键菜单,按鼠标右键可以正常弹出该菜单,但是问什么我在桌面或其他地方(非该菜单范围中)按鼠标右键或左键时不能消失该菜单的?就想其他软件那样可以点击其他地方就可以让该菜单消失,我的非要选择某项才能让其消失!!谁能帮我解决就马上结帐!!首先先谢谢了!!用的是VC++6.0,是一个弹出菜单!

解决方案 »

  1.   

    当鼠标点击其它区域时,你调用菜单的DestroyWindow()就行了。
      

  2.   

    //鼠标右键单击弹出菜单
    CMenu menu;
            
    menu.LoadMenu(IDR_MENU_ICONNOTIFY); 
    //载入事先定义的菜单
    CMenu* pMenu=menu.GetSubMenu(0);
    CPoint pos;
    GetCursorPos(&pos);
    SetForegroundWindow();   //没有这行弹出菜单不会在失去Track后消失
    pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON, pos.x, pos.y, this, NULL);
      

  3.   

    CMenu menu;
    menu.LoadMenu(IDR_MENU_ICONNOTIFY); 
    CMenu* pMenu=menu.GetSubMenu(0);
    CPoint pos;
    GetCursorPos(&pos);
    SetForegroundWindow();
    pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON, pos.x, pos.y, this, NULL);