菜单是MFC编程中非常重要的一种资源,在MFC中添加菜单有两种方式,一种是以资源的形式静态添加,另一种是动态添加,本文简洁说明第一种形式 ,其步骤如下(从SDK的角度看各种类之间的联系,更容易理解MFC框架):

1 创建win32空项目;

2 添加一个前述初步教程中所示的源代码文件

3 选择菜单insert->resource->menu,添加一个菜单File,并添加一个子菜单New,编辑子菜单New的ID为:IDM_FILENEW

4 选择Project --> Add To Project --> Files 将Script1.rcresource.h加入项目.

代码如下:

#include <afxwin.h>
#include "resource.h"class MFC_Tutorial_Window :public CFrameWnd
{CMenu menu1;      // menu1作为本窗口类的一个数据成员
public:MFC_Tutorial_Window(){Create(NULL,"MFC Tutorial Part 1 CoderSource Window");menu1.LoadMenu(IDR_MENU1);  // 加载菜单资源,初始化菜单SetMenu(&menu1);       // 当前窗口以menu1为菜单,如果SetMenu函数参数为空,则表示无菜单(此函数用于设置窗口菜单)}void OnFileNew();DECLARE_MESSAGE_MAP()
};BEGIN_MESSAGE_MAP( MFC_Tutorial_Window, CFrameWnd)ON_COMMAND(IDM_FILE_NEW,OnFileNew)   // ON_COMMAND表示菜单消息、工具栏消息等命令消息
END_MESSAGE_MAP()void MFC_Tutorial_Window::OnFileNew()
{MessageBox("Clicked File->New");
}
class MyApp :public CWinApp
{MFC_Tutorial_Window *wnd;
public:BOOL InitInstance(){wnd = new MFC_Tutorial_Window();m_pMainWnd = wnd;m_pMainWnd->ShowWindow(1);return 1;}
};MyApp theApp;

转载于:https://www.cnblogs.com/YukiJohnson/archive/2013/01/05/2846856.html

MFC初步教程(三):菜单相关推荐

  1. MFC初步教程(二)

    绘制简单的图形几乎是所有的VC教程中的必须内容,这里面涉及到几个概念,设备(device context),画刷(Pen)等.CDC是所有设备的父类,其子类包括CClientDC(仅在客户区绘制), ...

  2. MFC初步教程(一)

    学习过很多语言以及环境,对于Java.C++.Qt等都很容易理解,并且能很快上手做项目,唯独对MFC一直浑浑噩噩,不太清楚,参与项目总是独立负责一块,与业务逻辑更相关,用std库的机会多,与GUI.D ...

  3. mfc基础教程(学习笔记)

    目录 mfc基础教程 第一章:CDC的使用 第二章:文本编程 第三章:菜单 第四章:对话框 第五章:对话框(二) 第六章:样式 第七章:创建兼容DC 第八章:图形的保存与重绘 第九章:文件 第十章:文 ...

  4. Visual C++/MFC入门教程

    Visual C++/MFC入门教程 VC开发指南 1.1 如何学好VC 这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果.万事开头难,为了帮助朋友 ...

  5. Visual C++ MFC 简明教程

    原著:Marshall Brain 编译:张圣华 第一部分:MFC导论 Visual C++ 不仅仅是一个编译器.它是一个全面的应用程序开发环境,使用它你充分利用具有面向对象特性的 C++ 来开发出专 ...

  6. x%3e=y%3e=z的c语言表达式,我的C语学习笔记-C语言教程(三).doc

    我的C语学习笔记- C语言教程(三) C语言教程---第一章: C语言概论 C语言教程---第二章: 数据类型.运算符.表达式 C语言教程---第三章: C语言程序设计初步 C语言教程---第四章: ...

  7. DirectSound初步教程

    转自编程中国 DirectSound初步教程 2010-04-24 20:00 Directsound中常用的几个对象 对象 数量 作用 主要接口 设备对象 每个应用程序只有一个设备对象 用来管理设备 ...

  8. Win11 22H2怎么退回之前版本?Win11回滚Win10系统教程(三种方法)

    最近,新的Windows11 22H2正式版已经推送了,有不少更新到新系统的朋友出现了问题,想要退回之前的系统版本,本文就针对Win11 22H2怎么退回之前版本的问题,带来了三种Win11回滚Win ...

  9. Scintilla MFC使用教程

    Scintilla MFC使用教程 修复了按 Ctrl+S 会出现 "IDC"字符的BUG 增加了自定义消息 VK_ADD_HISTR: #define SET_EDITHIGHL ...

最新文章

  1. linux 多路径重启,(linux多路径连接iScsi存储重启自动连接.docx
  2. window.showModalDialog用法介绍
  3. android 相册 uri空,android拍照获得图片URI为空的处理方法
  4. python程序代码是什么_python编程:下列代码表示什么含义
  5. jquery的一个代码
  6. 大数据基础知识问答----hadoop篇
  7. 不会真的有人拿了上万甚至几十万在网络上赌博吧?
  8. 的房费重构——上,下位机的复议
  9. 机器视觉:平行光源在双远心系统中的应用
  10. 主板找不到SSD解决一例
  11. 上位机和下位机有什么区别和关系?常用上位机软件开发工具介绍
  12. 使用pem文件进行ssh登录
  13. 研发项目成本计算方法以及工作量评估
  14. 已经有些跑偏的“学术会议文化”!
  15. Android/IOS/Web跳转第三方QQ指定QQ号的聊天框,实现陌生人聊天
  16. 微信朋友圈能评论表情包了,来斗图啊!
  17. netstat和netstat -ano
  18. java中级工程师所需的技能_Java 工程师要具备哪些技能或技术?
  19. 将字符串的一部分拷贝到另一个字符串
  20. Emmy Noether传记资料(2010-01-27 23:37:43)

热门文章

  1. JVM运行时内存概念-堆栈及新生代、老年代、持久代
  2. shell分割参数为数组并循环执行jar,异常时退出循环
  3. lt;a href=quot;javascript:history.back();quot;gt;返回上一页lt;/agt;
  4. metasploit下载教程linux,在Debian 10/9系统上安装Metasploit Framework的方法
  5. seo自动工具_【SEO工具】搭建一个网站需要用到哪些SEO工具?
  6. SpringBoot使用@Transactional
  7. JAVA:二进制和十进制互转
  8. Ubuntu 下解压tar.xz方法
  9. SQL2000系统表、存储过程、函数的功能介绍及应用
  10. Nginx负载均衡配置+keepalived高可用