请教!MFC如何给NotifyIcon(通知区域图标)添加右键菜单?

解决方案 »

  1.   

    // 添加托盘图标
    NOTIFYICONDATA nid;
    ...
    nid.uFlags = NIF_MESSAGE;
    nid.uCallbackMessage = WM_USER_XXX;
    Shell_NotifyIcon(NIM_ADD, &nid);// 在WM_USER_XXX的响应函数中处理鼠标右键
    LRESULT CMyTrayIconDlg::OnXXXMessage( WPARAM wp, LPARAM lp )
    {
    if (IDI_ICON_TRAY == wp)
    {
    if (WM_RBUTTONUP == lp)
    {
    CMenu menu;
    menu.CreatePopupMenu();
    menu.AppendMenu(MF_STRING, 1000, _T("hello"));
    POINT pt;
    GetCursorPos(&pt);
    menu.TrackPopupMenu(TPM_LEFTALIGN, pt.x, pt.y, this);
    menu.DestroyMenu();
    }
    }
    return 0;
    }