BCMenu类的使用说明

用BCMenu动态创建带图标的弹出菜单 用BCMenu动态创建带图标的弹出菜单示例,代码内有详细说明。 附带包含CImageList类的简单使用方法。 立即下载
1、 把 BCMenu.cpp 和 BCMenu.h 文件添加到工程中;
2、  在 MainFrm.h 头文件中包含 BCMenu.h 头文件;
3、  在 MainFrm.h 头文件中添加公有成员变量和成员函数:
#include "BCMenu.h"
public:
       BCMenu m_menu;
       HMENU NewMenu();
4、 在MainFrm.cpp文件中实现HMENU CMainFrame::NewMenu函数,
用来加载菜单资源和工具栏资源:
      HMENU CMainFrame::NewMenu()
{
       m_menu.LoadMenu(IDR_MAINFRAME);
       m_menu.LoadToolbar(IDR_MYTOOLBAR);
       return(m_menu.Detach());
}
5、 编辑应用程序类CWinApp继承类的初始化实例函数InitInstance():
    // Dispatch commands specified on the command line
       if (!ProcessShellCommand(cmdInfo))
              return FALSE;
   //////////////////////////////////////////////////////////////////////////////////////////////
    CMenu* pMenu = m_pMainWnd->GetMenu();
       if (pMenu)pMenu->DestroyMenu();
       HMENU hMenu = ((CMainFrame*) m_pMainWnd)->NewMenu();
       pMenu = CMenu::FromHandle( hMenu );
       m_pMainWnd->SetMenu(pMenu);
       ((CMainFrame*)m_pMainWnd)->m_hMenuDefault = hMenu;
6、 向CMainFrame类添加消息句柄处理函数: WM_MEASUREITEM, WM_MENUCHAR 和 WM_INITMENUPOPUP :
( 1 ) void CMainFrame::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
{
         CFrameWnd::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
         // TODO: Add your message handler code here
         if(!bSysMenu){
                   if(BCMenu::IsMenu(pPopupMenu)) BCMenu::UpdateMenu(pPopupMenu);
         }
}
( 2 ) LRESULT CMainFrame::OnMenuChar(UINT nChar, UINT nFlags, CMenu* pMenu)
{
         // TODO: Add your message handler code here and/or call default
         LRESULT lresult;
         if(BCMenu::IsMenu(pMenu))
                   lresult=BCMenu::FindKeyboardShortcut(nChar, nFlags, pMenu);
         else
                   lresult=CFrameWnd::OnMenuChar(nChar, nFlags, pMenu);
         return(lresult);
         //return CFrameWnd::OnMenuChar(nChar, nFlags, pMenu);
}
 
( 3 ) void CMainFrame::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
         // TODO: Add your message handler code here and/or call default
         BOOL setflag=FALSE;
         if(lpMeasureItemStruct->CtlType==ODT_MENU){
                   if(IsMenu((HMENU)lpMeasureItemStruct->itemID)&&BCMenu::IsMenu((HMENU)lpMeasureItemStruct->itemID)){
                            m_menu.MeasureItem(lpMeasureItemStruct);
                            setflag=TRUE;
                   }
         }
         if(!setflag)
                   CFrameWnd::OnMeasureItem(nIDCtl, lpMeasureItemStruct);
         //CFrameWnd::OnMeasureItem(nIDCtl, lpMeasureItemStruct);
}
 
BCMenu类 应用于对话框的例子 这是美化菜单类BCMenu应用于对话框上的例子,希望能给大家帮助。 立即下载

相关推荐

MFC BtnST库,写好的按钮库,支持各种按钮美化

MFC BtnST库,写好的按钮库,支持各种按钮美化。 MFC BCMENU库,写好的菜单库,支持各种菜单美化 保护头文件即可使用

BCMenu 使用教程

在 SDI 中使用 BCMenu,首先,自然是建立一个 SDI 工程,然后将“BCMenu.h”和“BCMenu.cpp”放入文件夹下,单击"工程"->"增加到工程"->"文件",将"BCMenu.h"和"BCMenu.cpp"两个文件加入工程。 在 MainFrm.h 这个头文件里的成员函数 CMainFrame 里添加类型为 public 的脚本: BCMe...

weixin_30872789的博客 324

BCMenu类(适用VC++的外部类)

对VC++中的Menu类的扩充,有很多实用功能,学会拿来主义,将此类加入到自己的工程中,直接使用即可。

在Dialog(基本对话框)中使用BCMenu

如果说在 SDI 和 MDI 中使用 BCMenu 很麻烦的话,那么在 Dialog 中使用起来就是相当的简单了,不过因为在网页上没有说明 Dialog 里使用 BCMenu 的方法,只有一个很麻烦的示例,所以我的做法是新建一个基本对话框后和示例进行对比得到的,如果出现问题的话(至少我还没发现问题),请与示例文件进行对比。     首先新建一个MFC基于Dialog的程序,然后自然是创建一个菜单

3408

CButtonST类 按钮美化需要的BCMenu和BtnST

CButtonST类 按钮美化需要的BCMenu和BtnST,按钮美化需要的BCMenu和BtnST,帮助你美化你的MFC程序

BCMenu 自绘菜单的另一个VC++版本源代码

内容索引:VC/C++源码,界面编程,自绘,菜单  BCMenu 自绘菜单的另一个VC++版本源代码,是基于MDI窗体的,基于BMP位图填充的,学会用法吧,我觉得超不错的东西。

菜单的制作暨BCMenu类的使用说明

xuexiuyin的专栏 2291

手把手教你配置UEFI Secure Boot:从密钥生成到系统验证(附避坑指南)

本文详细介绍了如何配置UEFI Secure Boot,从密钥生成到系统验证的全过程,包括PK、KEK等关键密钥的生成方法,以及常见问题的解决方案。通过实战案例和避坑指南,帮助用户有效提升系统启动安全性,防止恶意软件植入。

weixin_30776273的博客 343

BCMenu 菜单类

BCMenu一个好用的图形菜单类

学习是遗忘的最好方法! 2810

libfacedetection 框架阅读及扩展经验

libfacedetection 框架源码解析与扩展心得1. libfacedetection 框架简介2. 源码解析2.1 facedetectcnn.h2.2 facedetectcnn.cpp2.3 facedetectcnn-model.cpp3. 其他层的扩展--depthwise convolution 前段时间因为工作需要,对libfacedetection框架做了些扩展,在阅读源...

weixin_42616332的博客 1500

Camunda 7.x 系列【22】全局监听器

Camunda支持义一个全局ExecutionListener和一个全局TaskListener,会捕获流程中发生的所有事件的通知,这样可以定义一个全局的审批人检查监听器,作用于所有用户任务。

记录知识、锤炼自我 2942

BCMenu 自绘菜单

Cool Owner Drawn Menus with Bitmaps<br />Version 3.036 June 2005<br />By Brent Corkum<br /> <br />Update Information<br /><br />Download MFC MDI Source Code+Example (97KB)<br />Download MFC Dialog Sorce Code+Example (78KB)<br />  What's new in Version 3.0<

lin_angle的专栏 1845

CODESYS无扰切换PID(ST源代码)

/运行信号//手自动切换//设置值、目标值yk : REAL;// 实际值、反馈信号;// 开环给定值;// 比例增益;// 积分时间 单位S;Td : REAL;// 微分时间 单位S;//采样时间 单位S// 滤波时间 单位S;//中断周期 默认10msEND_VARVAR_OUTPUT//uk : REAL;//控制器输出;//上一时刻的实际值;uDk : REAL;

RXXW_Dor的博客 1403

BCMenu一个好用的图形菜单类

//*************************************************************************// BCMenu.h : header file// Version : 3.036// Date : June 2005// Author : Brent Corkum// Email :  corkum@rocscience.com// Lat

darkduck9989的专栏 6520

论文翻译:arxiv-2023 Do-Not-Answer: A Dataset for Evaluating Safeguards in LLMs

随着大型语言模型(LLMs)的快速发展,出现了新的、难以预测的有害能力。这要求开发者能够通过评估“危险能力”来识别风险,以便负责任地部署LLMs。在这项工作中,我们收集了第一个开源数据集,用于评估LLMs中的安全保障,并以低成本部署更安全的开源LLMs。我们的数据集经过策划和筛选,只包含负责任的语言模型不应遵循的指令。我们注释并评估了六个流行的LLMs对这些指令的响应。基于我们的注释,我们继续训练了几个类似BERT的分类器,并发现这些小型分类器在自动安全评估上能够取得与GPT-4相当的成果。

CSPhD-winston的博客 1132

低轨通信 | 手机直连低轨卫星通信:架构、关键技术与未来展望

手机直连低轨卫星通信正推动人类进入"全域连接"时代。当中国星网GW星座与千帆星座的万颗卫星点亮夜空,当普通智能手机在珠峰之巅仍能流畅视频通话,当远洋渔船通过卫星物联网实现精准捕捞——这些场景不仅重构通信产业格局,更将深刻改变人类生产生活方式。正如工信部《指导意见》所规划,到2030年我国将发展超千万卫星通信用户,催生万亿级新市场[1][5]。在这场太空基建竞赛中,技术创新与标准制定的双重突破,将决定未来数字文明的星空版图。

尘世冰封的专栏 940

关于BCMenu在VC6和Vc9,VC2008一些用法差异

关于BCMenu在VC6和Vc9,VC2008一些用法差异 SystemParametersInfo SPI_GETNONCLIENTMETRICS 总是返回失败的原因

opposeeee的专栏 1258

Kalibr 安装+制作采集的图片和IMU数据生成 .bag 文件 (坑最全,解决方法最简单,最详细哈哈)

方法一、Kalibr标定工具实现 开源代码连接:https://github.com/ethz-asl/kalibr 1.1 创建工作空间 ——下载程序——编译 mkdir -p ~/kalibr_workspace/src cd /kalibr_workspace/src git clone https://github.com/ethz-asl/Kalibr.git cd .. //返回上一级 catkin_make source devel/setup.bash ......

努力努力努力 6939

全功能的自绘菜单BCmenu类

翻译来源:https://www.codeproject.com/Articles/22/Cool-Owner-Drawn-Menus-with-Bitmaps-Version 这个类很常见,在很多源码中都有见到。 包含BCMenu.cpp和BCMenu.h 该类实现了一个所有者绘制的菜单类,模仿XP,Office和Visual C ++中使用的菜单样式 下载M

Greless的后花园 1525

【推荐100个unity插件】unity易于使用模块化设计的天空、体积云和天气系统——Enviro 3

Enviro 3是一款功能强大的Unity天空与天气系统插件,提供动态天空、体积云、天气模拟等丰富功能。安装时需将预制体拖入场景并配置主相机,URP支持需激活深度纹理和添加渲染特性。模块化设计允许自由添加/移除时间、光照、雾效等模块,并通过API控制参数。推荐配合色调映射(如ACES模式)获得最佳视觉效果。插件支持季节、温湿度模拟及闪电风暴等特效,适用于需要逼真环境渲染的Unity项目。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2094

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

使用ButtonST中BCMenu实现XP菜单时,没有XP菜单效果

本地在调试,发行版中使用如下代码,在弹出的菜单中都有XP风格 BCMenu menu; menu.LoadMenu(IDR_TASK_MENU); BCMenu *pPopupMenu = (BCMenu *)menu.GetSubMenu(0); CPoint point; GetCursorPos(&point); AfxGetMainWnd()->SetForegroundW

zttjhm的专栏 427

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

菜单设置图标 BCMenu

BCMenu *menu = new BCMenu; menu->SetMenuDrawMode(TRUE); menu->LoadMenu(IDR_MAINFRAME); menu->SetBitmapBackground(RGB(255,0,255)); me

_free 1216

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

当使用BCMenu 时,发现菜单不显示不一致时的处理

 当使用网络上的BCMenu 时,发现菜单不显示不一致时的处理,如右键菜单的 大小不一样,需要重载下面这函数。 void CMymenuView::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) { BOOL setflag=FALSE; if(lpMeasureItemStruct->CtlType

guoquan2003的专栏 828
上一篇: Windows下常用函数用法总结
下一篇: 深入分析MFC文档视图结构
Express408
博客等级 码龄17年 0粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值