QQ登录

只需一步,快速开始

上位机MFC如何实现快捷菜单

[ 复制链接 ]
所谓的快捷菜单,就是直接鼠标右键弹出的菜单,可以很方便的通过菜单操作软件。
有普通菜单的添加一样,
首先也是新增一个菜单资源IDR_MENU。菜单上有众多子菜单。
如果是想通过鼠标右键弹出菜单,可以要鼠标右键函数内实现。
void CDemoView::OnRButtonUp(UINT nFlags, CPoint point)
{
        ClientToScreen(&point);
        CMenu menu;
        //加载菜单
        if (!menu.LoadMenu(IDR_MENU))
        {
                return;
        }
        //获得子菜单
        CMenu* pPopupMenu = menu.GetSubMenu(0);
        //弹出菜单
        pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
                point.x, point.y, this);
        CView::OnRButtonUp(nFlags, point);
}

也可以响应消息WM_CONTEXTMENU的处理函数实现
void CDemoView::OnContextMenu(CWnd* pWnd, CPoint point)
{
        CMenu menu;
        //加载菜单
        if (!menu.LoadMenu(IDR_MENU))
        {
                return;
        }
        //获得子菜单
        CMenu* pPopupMenu = menu.GetSubMenu(0);
        //弹出菜单
        pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
                point.x, point.y, pWnd);  
}

子菜单项的点击响应函数,可以与正常菜单项关联消息一样操作
void CDemoView::OnTestMenu1()
{
        AfxMessageBox(_T("快捷菜单项1命令"));
}

void CDemoView::OnTestMenu2()
{
        AfxMessageBox(_T("快捷菜单项2命令"));
}

  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索