欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【MFC】【VS2019】菜单上无法添加事件处理程序。菜单添加事件处理程序一直是灰的,点不了。

程序员文章站 2022-03-08 15:58:11
...

问题

最近学校的数据库实验用MFC+VS2019写小型数据库管理程序,自学MFC,按以下步骤添加菜单跳转窗口时遇到了菜单添加事件处理程序一直是灰的,点不了的问题。
MFC插入MENU菜单栏并点击菜单弹出新窗口

菜单添加事件处理程序(A)点击不了
【MFC】【VS2019】菜单上无法添加事件处理程序。菜单添加事件处理程序一直是灰的,点不了。

解决方案

方法一 将菜单中的中文字符改成英文

点不了的情况下,我的菜单上显示的caption是汉字关于,将Caption换成About之后菜单添加事件处理程序(A)可以点击,点击后就可选择相应逻辑
【MFC】【VS2019】菜单上无法添加事件处理程序。菜单添加事件处理程序一直是灰的,点不了。
【MFC】【VS2019】菜单上无法添加事件处理程序。菜单添加事件处理程序一直是灰的,点不了。

方法二 手动添加事件处理程序

首先在MysqlDlg.cpp(你想要添加事件处理的Dlg)中添加信息逻辑,
ON_COMMAND(1, &CMysqlDlg::OnAbout)
【MFC】【VS2019】菜单上无法添加事件处理程序。菜单添加事件处理程序一直是灰的,点不了。
注意前一个参数1为Menu菜单窗口编辑的ID
具体步骤为:在窗口内点击右键,选择“编辑ID(E)”选项,为每个菜单按钮添加ID
【MFC】【VS2019】菜单上无法添加事件处理程序。菜单添加事件处理程序一直是灰的,点不了。
后一个参数是跳转逻辑函数,这个函数也是添加在MysqlDlg.cpp(你想要添加事件处理的Dlg)中

void CMysqlDlg::OnAbout()
{
	// TODO: 在此添加命令处理程序代码
	About dig;
	dig.DoModal();
}

最后需要在MysqlDlg.h(你想要添加事件处理的Dlg头文件)中全局public添加afx_msg void OnAbout();
【MFC】【VS2019】菜单上无法添加事件处理程序。菜单添加事件处理程序一直是灰的,点不了。

相关标签: 经验