关闭

Windows编程基础--第10节 MFC菜单

标签: mfcwindows
1879人阅读 评论(0) 收藏 举报
分类:

MFC菜单(CMenu)

MFC菜单分为两类:

窗体菜单
快捷菜单:又叫弹出菜单,或者上下文菜单

1、创建项目

打开vs2010,创建一个基于对话框的项目,项目名“day10”,注意这次主框架中就不要勾选“系统菜单”和“关于框”了,如图:
这里写图片描述
创建好后,删除自动生成的文本控件,如图:
这里写图片描述

2、创建系统菜单

切换到资源视图,右击我们的项目“day10”,选择添加资源,出现如下界面:
这里写图片描述

这里写图片描述
选择“Menu”点击新建,然后就可以看到我们的项目中Menu目录,这里就存放菜单资源,展开后就可以看到,我们刚添加的菜单ID,双击打开;
我们可以直接输入想要添加的菜单选项,如图:
这里写图片描述
我们可以在资源视图右击菜单ID,然后选择属性,修改ID为IDR_MENU_SYSTEM;

3、显示系统菜单

我们打开刚才创建的主窗口,右击打开属性,在属性列表找到MENU属性,下拉框选择刚才创建的IDR_MENU_SYSTEM菜单,如图所示:
这里写图片描述
这时主窗口就和IDR_MENU_SYSTEM菜单关联起来了,运行看看效果:
这里写图片描述

4、创建菜单消息事件

我们切换到我们创建的菜单界面,来实现菜单中保存选项的处理事件,在“保存”选项上右击,选择“添加事件处理函数”,如下:
这里写图片描述
,出现如下添加事件界面:
这里写图片描述
这里我们类列表中选择Cday10Dlg中创建操作函数,函数名修改为OnMenuSaveClick,点击“添加编辑”,添加处理函数;

void Cday10Dlg::OnMenuSaveClick()
{
    // TODO: 在此添加命令处理程序代码
    AfxMessageBox(_T("文件已保存!"));  
}

运行效果,点击“文件”->“保存”,此时就会弹窗提示“””文件已保存!”,如图所示:
这里写图片描述

5、创建快捷菜单

切换资源视图,
选择“Menu”点击“插入MENU”,自动打开;我们可以直接输入想要添加的菜单选项,如图:
这里写图片描述
注意:快捷菜单中最上面的“快捷菜单”不会显示,名字可以随意。
修改次menu的ID为IDR_MENU_QUICK;

6、显示快捷菜单

我们打开刚才创建的主窗口,右击打开属性,在属性列表上方选择“消息”这里写图片描述按钮,找到“WM_OnContextMenu”,选择add OnContextMenu方法,如图所示:
这里写图片描述

void Cday10Dlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
    // TODO: 在此处添加消息处理程序代码
    CMenu menu;
    if(!menu.LoadMenu(IDR_MENU_QUICK))
    {
        return;
    }
    CMenu* pMenu = menu.GetSubMenu(0);
    pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,pWnd);
}

这段代码的意思就是:先试图加载IDR_MENU_QUICK菜单,加载成功之后,将菜单显示在鼠标右击(TPM_RIGHTBUTTON),靠左方(TPM_LEFTALIGN)的位置;
运行效果:
这里写图片描述
可以看见,菜单已经显示出来;

7、创建菜单消息事件

同步骤4,如图:
这里写图片描述
编辑OnCopy函数,如下:

void Cday10Dlg::OnCopy()
{
    // TODO: 在此添加命令处理程序代码
        AfxMessageBox(_T("文件已复制!"));  
}

效果图:
这里写图片描述

项目源码可以访问我的码云

1
0
查看评论

Windows-菜单编程基本技术

Windows-菜单编程基本技术 一,简介 在许多的框架中都免不了对菜单进行操作,不管是QT,Android还是IOS,基本的应用程序框架都会涉及到对菜单的API的调用,但是万变不其宗,菜单的基本概念我们清楚之后,我们就能否更好的理解和调用,MFC中对菜单的基本操作相对简单,其中有点复杂的也就算...
  • qq_22075977
  • qq_22075977
  • 2016-05-06 22:56
  • 1953

windows编程之菜单操作

分清几个概念 “主菜单” 和 “顶层菜单” 是一个意思。 主菜单中的项目叫做 “弹出菜单” 或者 “子菜单”。 弹出菜单的项目可以是另外一个弹出菜单。 菜单的状态:启用,禁用,无效化,无效化跟前两者的区别是灰色显示文字。   (1)菜单消息 WM_INITMENU wPar...
  • zhuhuangtianzi
  • zhuhuangtianzi
  • 2014-04-20 01:05
  • 2125

windows基础编程 -- 资源

前言VC环境可以通过资源脚本文件(.rc)给当前程序添加资源,这些资源包括: Accelerator(加速键),Bitmap(位图),Cursor(光标),Dialog(对话框),HTML(网页脚本),Icon(图标),Menu(菜单),StringTable(字符表),ToolBar(工具栏),V...
  • diletrich
  • diletrich
  • 2016-02-18 23:17
  • 334

Windows编程基础学习笔记

Windows编程概述     Windows系统是一个消息驱动的操作系统,每一个事件的发生都会产生一个消息,我们通过消息来知道发生了什么事件。    Windows编程是在实现程序算法的基础上进行窗口编程。程序员可以直接调用Windows API进...
  • lindagod
  • lindagod
  • 2015-02-17 08:28
  • 3102

如何给MFC的菜单项添加快捷键

转载地址 http://www.cnblogs.com/music-liang/p/3269081.html
  • ruihaha
  • ruihaha
  • 2014-09-12 09:06
  • 1902

Windows编程基础知识点

什么是窗口(window)? 对于从编程的角度解析,不要简单地认为是一个程序的窗口,而是如下面定义: 什么是句柄(handle): 是一个号码,操作系统使用这一的号码识别对象。操作系统有一个很大的表,包含了所有创建的windows的句柄,操作系统就是通过查找这一的表找到windows的。 记住句...
  • kenden23
  • kenden23
  • 2013-12-15 08:03
  • 1599

Windows编程基础--第3节 初探MFC

前言 win32程序属于早期windows软件,已经逐渐被淘汰,但它的设计模式和方法大部分都被MFC所继承,并且MFC开始使用C++语言进行开发,借助C++比C语言的强大特性,使得开发windws程序更加简便、高效,更加多元化。 创建第一个MFC程序(操作系统:win10 64位 IDE:vc+...
  • qq_25549309
  • qq_25549309
  • 2017-10-19 22:17
  • 1880

Windows编程基础--第19节 MFC之自定义消息

Windows编程基础–第19节 MFC之自定义消息windows程序中最重要的就是消息机制,前面几节我们都是使用Windows系统设定好的消息进行编程,今天我们来使用自定义的消息来看看MFC中消息的传递过程; MFC中自定义消息有两种方法: #define WM_MY_DEFINED_...
  • qq_25549309
  • qq_25549309
  • 2017-11-08 21:26
  • 161

windows编程经典书籍+VC++学习路线资料

本人是刚刚开始学习windows编程的,感觉看雪学院的大牛很NB.想找一些书籍来看学习学习,可是不知道看哪些书好. 驱动,对菜鸟们来说真是一个很深奥的话题,所以 ,我找来了这篇文章供大家分享,以后大家发现什么好书就在楼下跟贴吧! 作者:Harry Meng 来源:互联网. 也许我的阅读面过于...
  • fjxichao
  • fjxichao
  • 2014-07-29 15:35
  • 1918

Windows编程基础--第5节 MFC对话框程序

模式对话框对话框程序是MFC最重要的组成部分,也是Visual C++中唯一可以可视化设计的窗口程序,对话框主要有两类: 模式对话框:必须关闭这个对话框才能继续操作父窗口或者上一级窗口 非模式对话框:不影响父窗口或者上一级窗口,可继续操作父窗口或者上一级窗口,对话框程序也可以一直保留,...
  • qq_25549309
  • qq_25549309
  • 2017-10-21 22:46
  • 1890
    个人资料
    • 访问:40656次
    • 积分:697
    • 等级:
    • 排名:千里之外
    • 原创:28篇
    • 转载:6篇
    • 译文:0篇
    • 评论:1条
    文章分类