热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VC++60MFC学习右键菜单RMenu

源码访问链接:gitee:https:gitee.compiaziniMFC-stugithub:https:github.compiaziniMFC-stu编译器:VC++6.

源码访问链接:

gitee: https://gitee.com/piazini/MFC-stu
github: https://github.com/piazini/MFC-stu

 

编译器:

VC++ 6.0 (SP6) 简体中文企业版

 

项目名:RMenu 

( 如何新建项目 ?  --> VC++60新建MFC框架程序 - 对话框程序 )

 

成品截图:

 

代码:

RMenuDlg.h

class CRMenuDlg : public CDialog
{
protected:
//右键菜单
afx_msg void On_32772(); //右键-大家好
afx_msg void On_32773(); //右键-同学好
afx_msg void On_32774(); //右键-你好
};

 

RMenuDlg.cpp

//注意是MAP里的参数是CRMenuDlg里填写,不是上面的CAboutDlg里填写
BEGIN_MESSAGE_MAP(CRMenuDlg, CDialog)
// 菜单栏代码需要手动添加
//菜单栏
ON_COMMAND(ID_MENUITEM32772, On_32772) //右键-大家好
ON_COMMAND(ID_MENUITEM32773, On_32773) //右键-同学好
ON_COMMAND(ID_MENUITEM32774, On_32774) //右键-你好
END_MESSAGE_MAP()
//鼠标右键弹起
void CRMenuDlg::OnRButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

//载入菜单资源IDR_MENU1
CMenu menu;
menu.LoadMenu(IDR_MENU1);

//获取菜单项里的子菜单
CMenu *pPopup = menu.GetSubMenu(NULL);
//获取鼠标点击位置
CPoint pointPos;
GetCursorPos(&pointPos);
//弹出菜单
pPopup ->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pointPos.x, pointPos.y,this);
CDialog::OnRButtonUp(nFlags, point);
}
//右键-大家好
void CRMenuDlg::On_32772()
{
MessageBox(_T("On_32772"));
}
//右键-同学好
void CRMenuDlg::On_32773()
{
MessageBox(_T("On_32773"));
}
//右键-你好
void CRMenuDlg::On_32774()
{
MessageBox(_T("On_32774"));
}

  

 

 

参考:

https://blog.csdn.net/weixin_43694353/article/details/84935050

黑马MFC 三天课程



推荐阅读
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 解决Unreal Engine中UMG按钮长时间按住自动释放的问题
    本文探讨了在Unreal Engine中使用UMG按钮时,长时间按住按钮会导致自动释放的问题,并提供了详细的解决方案。 ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 命令模式是一种行为设计模式,它将请求封装成一个独立的对象,从而允许你参数化不同的请求、队列请求或者记录请求日志。本文将详细介绍命令模式的基本概念、组件及其在实际场景中的应用。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • QT框架中事件循环机制及事件分发类详解
    在QT框架中,QCoreApplication类作为事件循环的核心组件,为应用程序提供了基础的事件处理机制。该类继承自QObject,负责管理和调度各种事件,确保程序能够响应用户操作和其他系统事件。通过事件循环,QCoreApplication实现了高效的事件分发和处理,使得应用程序能够保持流畅的运行状态。此外,QCoreApplication还提供了多种方法和信号槽机制,方便开发者进行事件的定制和扩展。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
author-avatar
天亮说晚安
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有