右键弹出菜单

转载 2017年01月03日 16:15:52

算法:

第一步:增加组件

组件和控件:

Project / Add to project / Components and controls

选择VC++ components里面的Pop-up Menu;

选择CMenuView下面的

CG_IDR_POPUP_MENU_VIEW

这个是ID号,你可以修改的;

在资源里面会增加一个菜单,只有一个子菜单abc(名字随便,不显示的)

编辑子菜单项:显示IDM_SHOW,退出IDM_EXIT

★注意:用下面这个函数可以手动创建弹出菜单:

CMenu::TrackPopupMenu

BOOL TrackPopupMenu( UINT nFlags, int x, int y, CWnd* pWnd, LPCRECT lpRect = NULL );

第二步:在View中添加WM_RBUTTONDOWN消息对应函数

void CMenuView::OnRButtonDown(UINT nFlags, CPoint point)

{

      // TODO: Add your message handler code here and/or call default

     

      CView::OnRButtonDown(nFlags, point);

}

第三步:编写响应函数中的程序;

     S1:加载弹出菜单;

            CMenu menu;

             menu.LoadMenu(IDR_MENU1);

     S2:获得索引号为0的子菜单指针;

          CMenu *pPopup=menu.GetSubMenu(0);

     S3:转换坐标系,从客户区坐标到屏幕坐标的转换;

      ClientToScreen(&point);

     S4:弹出菜单

      pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,this);

     S5:结束

 

★其中this表示view,那么view类能响应菜单命令;如果想mainframe来响应菜单命令,则this改为GetParent();

 

 

★完整菜单如下:

void CMenuView::OnRButtonDown(UINT nFlags, CPoint point)

{

      // TODO: Add your message handler code here and/or call default

      //S1:加载弹出菜单

      CMenu menu;

      menu.LoadMenu(IDR_MENU1);

 

      //S2:获得索引号为0的子菜单,在本例子里就一个;

      CMenu *pPopup=menu.GetSubMenu(0);

 

      //S3:转换坐标系,从客户区坐标到屏幕坐标的转换;

      ClientToScreen(&point);

 

      //S4:弹出菜单

      pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);

 

      CView::OnRButtonDown(nFlags, point);

}

 

为显示和退出子菜单项增加命令响应函数,方法和以前一样,此处略讲;

java右键弹出菜单

package test1; import java.awt.*; import java.awt.event.*; import java.applet.*; public class Applet...
  • bailang71
  • bailang71
  • 2004年12月13日 08:25
  • 1198

MFC---鼠标右键弹出菜单

首先 在资源编辑栏中 添加 菜单栏
  • liumeng305
  • liumeng305
  • 2014年06月04日 11:39
  • 1541

vb 右键弹出菜单

请进行如下操作。 打开“菜单编辑器”,按常规方法添加菜单。例如: ----------- 菜单 (名称为mnuPop) ....菜单1 (名称为mnuPop1) ....菜单2 (名称为mnuP...
  • boys1999
  • boys1999
  • 2014年04月11日 12:06
  • 663

HTML右键弹出菜单

1.自定义菜单样式 ul.menu{list-style: none;position: absolute;z-index:9999;visibility: hidden;border:1...
  • a372210774
  • a372210774
  • 2015年06月03日 18:20
  • 281

Jquery鼠标右键点击弹出菜单

今天分享一个Jquery鼠标右键点击弹出菜单的组合功能。在项目中,主要是用在表格中,点击单元格, 弹出右键菜单,选择下一步的功能。 首先是,右键点击事件的获取: 鼠标的事件e,e.which: ...
  • u010832551
  • u010832551
  • 2016年02月25日 15:16
  • 1376

js 右键弹出自定义菜单

近期在项目中有一个右键菜单的需求,发现很多实现都比较复杂,于是自己花了一点时间稍微研究了一下,下面提供一个简洁的实现方法。 js声明部分://创建右键菜单 var epMenu={ crea...
  • ttx_laughing
  • ttx_laughing
  • 2016年11月24日 17:17
  • 908

MFC操作——右键弹出菜单事件

一、在资源编辑器中建立一个菜单资源         新建一个菜单资源,比如把菜单的ID号为IDC_POPMENU。此菜单有一项两层,即有一个可弹出的菜单项,而此菜单项的弹出内容即为将要建立的弹出式菜...
  • u011672712
  • u011672712
  • 2016年06月18日 12:30
  • 520

MFC右键弹出菜单,并添加响应函数

遇到问题: 添加右键弹出菜单,并添加响应函数,点击菜单项却进不响应函数。 实现步骤: 1、新建一个菜单资源,IDR_TOOL_MENU。 2、在ClassWizard中 vo...
  • surui_555
  • surui_555
  • 2015年07月28日 17:38
  • 4352

Qt之右键弹出菜单

Qt中右键菜单的实现主要是通过QContextMenuEvent事件来实现的,如果想要实现自定义的菜单,我们只需要重写该事件!由于该事件为QWidget的一个虚方法,所以继承至QWidget的部件都可...
  • yu253
  • yu253
  • 2017年10月09日 21:28
  • 190

JQ实现右键点击弹出菜单

//屏蔽浏览器右键菜单 document.oncontextmenu = function().{ return false; } //按下鼠标 $(document).mousedown(...
  • ccfxue
  • ccfxue
  • 2016年01月03日 23:22
  • 2944
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:右键弹出菜单
举报原因:
原因补充:

(最多只允许输入30个字)