我想在编辑框上(如果不为空的情况下)弹出右键菜单,
怎么做阿????
大侠们 帮忙阿啊啊啊啊啊啊啊啊啊啊啊?
急急急急急急急急急急急急急急急急

解决方案 »

  1.   

    在OnContextMenu函数里面判断一下编辑框是否为空,
    如果不为空则new一个menu。
      

  2.   

    先画好一个菜单,设置到对话框的ContextMenu中,然后在OnContextMenu(CWnd* pWnd, CPoint point)中加入:
    // 显示右键菜单,调入右键菜单
    CMenu menu;
    menu.LoadMenu(IDR_MENU_SEND);
    // 先获取控件的范围,以确定在何处出现右键菜单
    CRect rt;
    GetDlgItem(IDC_EDIT1)->GetWindowRect(&rt);
    if(rt.left<point.x&&rt.top<point.y&&rt.right>point.x&&rt.bottom>point.y)
    {
    CMenu* pContextMenu = menu.GetSubMenu(0);
    pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON,point.x,point.y,this);
    }
      

  3.   

    直接在OnContextMenu(CWnd* pWnd, CPoint point)中加入:
    // 显示右键菜单,调入右键菜单
    CMenu menu;
    menu.LoadMenu(IDR_MENU_SEND);
    // 先获取控件的范围,以确定在何处出现右键菜单
    CRect rt;
    GetDlgItem(IDC_EDIT1)->GetWindowRect(&rt);
    if(rt.left<point.x&&rt.top<point.y&&rt.right>point.x&&rt.bottom>point.y)
    {
        CMenu* pContextMenu = menu.GetSubMenu(0);
    pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON,point.x,point.y,this);
    }
      

  4.   

    IDC_EDIT1为你的EDIT控件的名字,
    用我发的帖子写的第2种方法,至于不为空时就更简单了,判断一下再出现右键菜单即可!
      

  5.   

    楼上,我不知道你测试过没有
    对于有编辑功能的控见比如说编辑框它弹出的是系统的默认菜单
    根本响应不了OnContextMenu函数
    没有编辑功能的到可以
      

  6.   

    可以继承CEdit,要的话我给你发一个