首页
学习
活动
专区
圈层
工具
发布

MFC添加下拉菜单、右键菜单

添加下拉菜单: #在头文件声明一个CMenu对象m_Menu CMenu m_Menu; #在Resource.h中定义三个ID #define ID_MENUCAT                      ...m_PopMenuPlant.AppendMenu(MF_STRING, ID_MENUFLOWER, "花朵"); m_PopMenuPlant.Detach(); SetMenu(&m_Menu); #添加菜单的消息处理函数...) ON_COMMAND(ID_MENUMONKEY, OnMenumonkey) #在源文件中实现消息处理函数 void CTestDlg::OnMenucat(){ MessageBox("猫菜单被按下..."); } void CTestDlg::OnMenudog(){ MessageBox("小狗菜单被按下"); } void CTestDlg::OnMenumonkey(){ MessageBox...("猴子菜单被按下"); } 添加右键菜单: #添加一个菜单资源,ID自定义,我在这里定为IDR_MENU_RIGHT #在头文件添加消息处理函数 afx_msg void OnRButtonUp(UINT

2.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MFC 如何让菜单返灰(不可点击状态)

    MFC中对于菜单栏的使用相信都已经是日常操作了,那么如何使得菜单栏下的小菜单项变成灰色,不可点击状态呢?...首先为页面(窗口)添加一个菜单栏先(菜单栏需要提前进行资源添加创建出来,并且获取菜单栏的ID号,在程序中进行加载) CMenu m_Menu; m_Menu.LoadMenu(IDR_MENU_SYSTEM...); SetMenu(&m_Menu); 其次获取菜单栏的子菜单项,对子菜单项进行操作 CMenu *sub_menu = m_Menu.GetSubMenu(0); // 获取菜单栏下的第一个菜单项...// 获取子菜单项下ID号为:ID_32772的菜单子项,对该菜单子项进行变灰操作 sub_menu->EnableMenuItem(ID_32772, MF_BYCOMMAND | MF_DISABLED...| MF_GRAYED); 如何让变灰的菜单项重新变回正常可点击状态呢?

    1.5K20

    MFC 思考:MFC是否没落了

    MFC相对于如今众多林立的开发语言中算是比较老的了,但是至今MFC仍然还有很多人使用,就本人观点来看MFC相对于一些其他语言确实存在很多令人诟病的地方。...(1)MFC基于c/c++书写代码很多时候要比C#、VB、java代码要多,虽然这样确实比较灵活,但是对于当今高效率开发时代,书写更少代码实现更多功能是目前大势所趋 (2)MFC难学不易懂,MFC需要有...c/c++基础,而且光有基础是不行的必须会操作开发环境,这也是一个难点,现在很多开发环境简化开发难度,例如菜单VB、C#,易语言等直接可视化操作,双击即可书写触发事件函数,MFC需要手动添加资源菜单、也不是双击菜单就能写触发事件函数...当然还有很多地方MFC存在毛病,但不是一无是处,也有很多优点,不过就现在看来优点再多面对现在高效率开发时代也是很难走下去,个人建议想用MFC开发程序的人还是慎重考虑,能学其他语言就不要学MFC。...MFC现在一点用都没有了吗? 不是,历史上遗留下来一些MFC的源代码需要维护。可能偶尔会用几个开源项目,就像弹药不够的时候偶尔也拼一下刺刀。 MFC应该跟什么语言比较?

    51710

    mfc wpf winform(工业用mfc还是qt)

    与C#中的WPF又有点类似 MFC与WinForm 前面讲了这四个框架都是简化的两层的MVC模式.MFC中数据的逻辑处理自然是放后缀为h,cpp的这些文件中.而页面相关的那一堆东东放资源文件rc后缀的文件中...WinForm中也遗留了MFC一些思想,比如还有类似资源文件的东东,像Resources.resx文件,里面一般是放图片信息,然后Setting.settings就类似MFC里的string table...窗口中每一个控件都有一个name,相当于mfc中的资源ID吧,然后你在代码中调用控件时直接用这个名字就行,就相当于一个变量名字.所以代码与UI交互起来非常方便,另外MFC中的消息机制在这里被封装成了事件...QT与WPF 同为C++的GUI框架,QT与MFC不那么相似,那种逻辑反而更接近C#的wpf框架一点.首先不是所有UI相关代码都像MFC一样整到一个rc文件,而是一个UI页面有对应一个后缀为ui的的xml...而MFC页面对应的rc文件,QT页面对应的xml文件,WPF页面对应的xaml文件都不是标准的C++或C#代码.不太符合我们的思维习惯.

    3.1K10

    MFC DLL编写MFC调用全面研究报告

    MFC DLL导出函数有两种方法,第一就是__declspec(dllexport),第2种就是def文件,全面研究报告结论,我们应该少用def文件,而应该用__declspec(dllexport)。...用法)调用成功 (2)win32 DLL导出函数用def填写,静态加载(用#pragama+__declspec(dllimport)用法)无法调用,动态加载(LoadLibrary)调用成功 (3)MFC...共享DLL只要在名前面加一个__declspec(dllexport),类方法不用加,静态加载调用成功 (4)MFC 共享DLL如果不在类名前面加了一个__declspec(dllexport),情况很复杂...dllexport)调用加__declspec(dllexport)的函数成功 (e)有构造函数和析构函数情况下,所有函数(含构造函数和析构函数)加__declspec(dllexport)会调用成功 (5)MFC...共享DLL只通过def文件导出函数,发现无论有无构造或者析构函数,调用或者本身都会出错 结论:MFC导出类有3种方法推荐,第一只要在名前面加一个__declspec(dllexport),第二在所有函数包含构造后析构函数加

    17610

    mfc可视化界面_mfc界面开发

    亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFC v32.2正式发布!...新版本改进的功能区和框架标题命令搜索、带有可选复选框的网格日期选择器、带有标签的功能区滑块等,需要最新版的可以点击这里【BCG下载】 BCGControlBar Pro for MFC v32.2正式版下载...由于搜索框现在可以位于框架上,因此您可以为non-Ribbon-based的应用程序启用它(启用框架标题栏的基于工具栏/菜单的应用程序)。...对于这种应用程序,框架会扫描所有工具栏和菜单栏以寻找最佳匹配,并在下拉菜单中显示搜索结果。...工具栏和菜单 1. 改进了某些可视化主题中禁用的组合框外观。 2.

    4.6K20

    MFC原理第一讲.MFC的本质.以及手工编写MFC的程序

    MFC原理第一讲.MFC的本质.以及手工编写MFC的程序 PS: 这个博客属于复习知识.从头开始讲解....在写这篇博客之前.已经写了3篇MFC的本质了.不过掌握知识点太多.所以从简重新开始. 一丶MFC的本质是什么.   MFC的本质其实就是Win32程序的一种封装....二丶手工编写一个MFC程序.   手工编写MFC程序.需要熟悉两个类   一个是CWinAPP,一个是CFramWnd类. 这两个类的作用.   ...并且提供构造.构造里面创建窗口.   5.CPP 文件必须包含MFC类库. afxWin.h   6. 使用MFC 静态库的方式. 例如下图: ? 具体实现代码:   1. .h文件的代码....如果有兴趣.可以看看MFC源码.也可以看看我以前写过的MFC原理的博客.

    3.1K40

    MFC入门教程(深入浅出MFC)

    2.左侧面板中Installed Templated的Visual C++下选择MFC,中间窗口中选择MFC Application,然后在下面的Name编辑框中键入工程名称,本例取名“Addition...7.System Menu:是否带有标题栏左上角的系统菜单,包括移动、关闭等菜单项。我们使用默认的True。 8.Title Bar:是否带有标题栏。...控件的属性改变后MFC会相应修改控件关联变量的值。这种同步的改变是通过MFC为对话框类自动生成的成员函数DoDataExchange()来实现的,这也叫做对话框的数据交换和检验机制。...另外,本套教程所讲大部分对VC++各个版本均可适用或者稍作修改即可,但考虑到终究还是基于VS2010版本的,所以将《VC++/MFC编程入门》改为《VS2010/MFC编程入门》。...在Solution Explorer视图中的根节点“Addition”上点右键,在右键菜单中选择Add->Class,弹出“Add Class”对话框,然后在中间区域中选择“MFC Class”,点“Add

    6.4K31
    领券