我在view中右健单击,想弹出一个菜单,如何实现?

解决方案 »

  1.   

    m_hPickMenu = GetSubMenu(LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_MENUFUDU)), 3);
    TrackPopupMenu(m_hPickMenu, TPM_RIGHTBUTTON, nXPos, nYPos, 0, hDlg, NULL);
      

  2.   

    1.添加一个菜单,IDR_MENU1,然后随便加点菜单进去,例如:
    File
    -------
    Open
    Save2.重载 OnContextMenu :void CMyMFCDlg::OnContextMenu(CWnd* pWnd, CPoint point) 
    {
      CMenu menu;
      // 载入菜单
      VERIFY( menu.LoadMenu( IDR_MENU1 ) );
      // 得到弹出菜单
      CMenu* popup = menu.GetSubMenu( 0 );
      ASSERT( popup != NULL );
      // 在窗体上点右键弹出菜单来
      popup->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWnd );  
    }
      

  3.   

    1.添加一个菜单,IDR_MENU1,然后随便加点菜单进去,例如:
    File
    -------
    Open
    Save2.在鼠标右击事件中加入代码OnRButtonDown:void CMyMFCDlg::OnRButtonDown(UINT nFlags, CPoint point)  
    {
      CMenu menu;
      // 载入菜单
      menu.LoadMenu( IDR_MENU1 );
      // 得到弹出菜单
      CMenu* popup = menu.GetSubMenu( 0 );
      // 在窗体上点右键弹出菜单来
      popup->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
     
    }