MFC右键弹出菜单

右键弹出菜单是指右键抬起的时候弹出的菜单。通常放置在Dialog的OnRButtonUp响应函数里。

下面就给出右键弹出菜单的实例:

1 添加右键事件及响应函数

可以用Class Wizard。。。来添加一个右键消息WM_RBUTTONUP,为其添加Handler,会自动生成OnRButtonUp响应函数

2 为弹出菜单添加资源

可以用“Resource View”中的”String Table”添加一个新的弹出菜单资源,这里假设资源ID : IDC_MENU_UPDATE_POINT ,Caption : 修改点

3 创建弹出菜单

在OnRButtonUp中创建、显示、弹出、销毁弹出菜单

void CmfcDlg::OnRButtonUp(UINT nFlags, CPoint point)
{
    // TODO: Add your message handler code here and/or call default
    CMenu menu;//定义菜单对象
    menu.CreatePopupMenu();//创建弹出菜单

    menu.AppendMenu(MF_STRING | MF_ENABLED, IDC_MENU_UPDATE_POINT, _T("修改点"));//将弹出菜单与资源关联
    CPoint pt;
    GetCursorPos(&pt);//获取当前鼠标的位置,从而在此位置显示弹出菜单
    menu.TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this);//显示弹出菜单

    menu.DestroyMenu();//销毁弹出菜单

    CDialogEx::OnRButtonUp(nFlags, point);
}

4 添加弹出菜单的响应函数

在MESSAGE_MAP中添加一个新项,让弹出菜单可以响应一个自定义的函数

ON_COMMAND(IDC_MENU_UPDATE_POINT, OnUpdatePoint)

5 声明并实现弹出菜单的响应函数OnUpdatePoint

(1)头文件

afx_msg void OnUpdatePoint();

(2)源文件

void CmfcDlg::OnUpdatePoint()
{
    AfxMessageBox(_T("右键弹出菜单!"));
}

时间: 2024-08-03 11:24:16

MFC右键弹出菜单的相关文章

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

创建右键弹出菜单

①.添加一个菜单资源,ID为IDM_RIGHTMENU.因为在显示右键菜单时顶级菜单是不显示的,所以可以给它设置任意文本. ②.给视类添加WM_RBUTTONDOWN消息,在该消息中处理右键弹出菜单.因为视类窗口始终覆盖在框架窗口之上,框架窗口接收不到鼠标消息,所以由视类捕获WM_RBUTTONDOWN消息. void CMenuView::OnRButtonDown(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CMenu

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

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

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

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

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

MFC列表右键弹出菜单

.h文件 protected: afx_msg void OnNMRClick(NMHDR *pNMHDR, LRESULT *pResult); .cpp文件 BEGIN_MESSAGE_MAP(CDemoDlg, CPropertyPage) ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST1, OnColumnClick) END_MESSAGE_MAP() void CDemoDlg::OnNMRClick(NMHDR *pNMHDR, LRESULT *pResu

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