创建右键弹出菜单

①、添加一个菜单资源,ID为IDM_RIGHTMENU。因为在显示右键菜单时顶级菜单是不显示的,所以可以给它设置任意文本。

②、给视类添加WM_RBUTTONDOWN消息,在该消息中处理右键弹出菜单。因为视类窗口始终覆盖在框架窗口之上,框架窗口接收不到鼠标消息,所以由视类捕获WM_RBUTTONDOWN消息。

void CMenuView::OnRButtonDown(UINT nFlags, CPoint point)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值

    CMenu menu;
    menu.LoadMenuW(IDM_RIGHTMENU);//加载菜单资源
    CMenu *pPopup=menu.GetSubMenu(0);
    ClientToScreen(&point);//将客户区坐标转换为屏幕坐标

    //显示右键菜单,由视类窗口拥有。
    pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
    //TrackPopupMenu的最后一个参数,可以为GetParent让父窗口既框架窗口拥有右键菜单,这样
    //框架类窗口获得了对右键菜单中菜单项的命令响应,
    CView::OnRButtonDown(nFlags, point);
}

③、为右键菜单项添加命令消息响应函数。

时间: 2024-10-12 21:52:58

创建右键弹出菜单的相关文章

MFC右键弹出菜单

右键弹出菜单是指右键抬起的时候弹出的菜单.通常放置在Dialog的OnRButtonUp响应函数里. 下面就给出右键弹出菜单的实例: 1 添加右键事件及响应函数 可以用Class Wizard...来添加一个右键消息WM_RBUTTONUP,为其添加Handler,会自动生成OnRButtonUp响应函数 2 为弹出菜单添加资源 可以用"Resource View"中的"String Table"添加一个新的弹出菜单资源,这里假设资源ID : IDC_MENU_UP

vc++ 如何添加右键弹出菜单

一.创建新工程 二.编辑菜单资源 1.添加菜单 按"Ctrl+R",双击"Menu"图标 2.于菜单编辑器内编辑菜单 四.添加代码(红色部分) void CCMenuView::OnUpdateShow(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here MessageBox("右键弹出菜单测试!"); } void CCMenuView::OnRButt

【转】android创建Popwindow弹出菜单的两种方式

方法一的Activity [java] view plaincopy package com.app.test02; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import

js+css实现带缓冲效果右键弹出菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

修改右键弹出菜单的字体大小

如果要修改右键弹出菜单的大小. 先设置Screen->MenuFont->Size = 30; 你希望设置的字体大小 然后将 PopMenu的OwnerDraw属性设置为true 然后设置每个菜单项(TMenuItem)的OnMeasureItem 事件过程,设置菜单项的高度. 下面是实例代码 //--------------------------------------------------------------------------- #include <vcl.h>

Vue2的右键弹出菜单(vue-contextmenu)

给大家推荐一个基于Vue2的右键弹出菜单插件,支持单一SPA页面以及可以在循环绑定中使用. 项目地址为:https://github.com/chIIC/vue-...demo1: 父组件绑定右键事件的效果: demo2:列表循环绑定,识别当前点击对象: 原文地址:https://www.cnblogs.com/10manongit/p/12219408.html

关于MFC主菜单和右键弹出菜单

一.主菜单.弹出菜单和右键菜单的概念: 主菜单是窗口顶部的菜单,一个窗口或对话框只能有一个主菜单,但是主菜单可以被更改(SetMenu()更改): 创建方式:CMenu::CreateMenu(void); 弹出菜单在菜单项中是带有右向小三角的菜单,主菜单的每个菜单项都是一个弹出菜单(PopMenu),因此弹出菜单是凸型或左凸型: 创建方式:CMenu::CreatePopMenu(void); 右键菜单是点击右键弹出的菜单(响应OnContextMenu). 原文地址:https://www.

禁止右键弹出菜单

<script src="../public/js/jquery-1.8.3.js"></script> <title>禁止右键单击上下文菜单</title> <script type="text/javascript"> $(function(){ $(document).bind("contextmenu",function(e){ $("textarea").h

Win32建立右键弹出菜单(PopMenu)

自定义右键菜单: 1 #ifndef _CONTEXTMENU_H_ 2 #define _CONTEXTMENU_H_ 3 #include <windows.h> 4 5 6 //动态菜单 7 #define ITEM_MENU_REPLY 40001 8 #define ITEM_MENU_ALLREPLAY 40002 9 #define ITEM_MENU_RELAY 40003 10 #define ITEM_MENU_DELETE 40004 11 #define ITEM_ME