MFC添加菜单资源,绑定菜单事件函数

MFC添加菜单:

1 解决方案下->项目,右键添加->资源, 选择菜单, 创建菜单,并记住ID:


在这里插入图片描述

2 在要绑定菜单的窗口类的xxxDlg.h文件中添加 菜单类:

// CNewGameGateDlg 对话框
class CNewGameGateDlg : public CDialogEx
{
// 构造
public:
	CNewGameGateDlg(CWnd* pParent = nullptr);	// 标准构造函数

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_NEWGAMEGATE_DIALOG };
#endif

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持


// 实现
protected:
	HICON m_hIcon;
	CMenu m_menu;				//  添加菜单项
	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
};

3 在要绑定菜单的窗口类xxxDlg.cpp文件的OnInitDialog()添加:


//1 首先引入菜单资源
#include "resource.h"
// CNewGameGateDlg 消息处理程序

BOOL CNewGameGateDlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// 将“关于...”菜单项添加到系统菜单中。

	// IDM_ABOUTBOX 必须在系统命令范围内。
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != nullptr)
	{
		BOOL bNameValid;
		CString strAboutMenu;
		bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
		ASSERT(bNameValid);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标




//  这两行是要添加的  菜单 
	m_menu.LoadMenu(IDR_MENU1);//加载菜单资源
	SetMenu(&m_menu);		//将菜单至于对话框



	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}




4 添加事件

在这里插入图片描述
在这里插入图片描述

点击要添加事件处理的选项, 右键, 添加事件子程序, 起名字后(默认的名字是On + 数字), 查看类列表是否对应字节的对话框类,然后点击确定, 就可以使用了

在这里插入图片描述

完成后测试

点击菜单选项的控制下面的启动服务后:
在这里插入图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孔二他老表

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值