一,新建一个BCGprojectCBCGPMenuButton,基于对话框。

二。添加一个button,并关联一个CButton类型的变量m_btn1。然后手动将类型改CBCGPMenuButton成。

三,为这个button添加响应事件。

void CCBCGPMenuButtonDlg::OnButton1()

{

AfxMessageBox("士农学会。");

}

四,F5执行。鼠标单击Btn1,看看结果。结果纹丝不动。

五,在CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中将m_bDefaultClick设置为TRUE。

m_btn1.m_bDefaultClick = TRUE;

六。在添加一个button并关联CBCGPMenuButton类型的变量m_btn2。添加响应事件。

七。在CCBCGPMenuButtonDlg::OnInitDialog()中为m_btn2设置菜单。

static CMenu menu;

menu.CreatePopupMenu();

menu.AppendMenu(MF_STRING,1,"士");

menu.AppendMenu(MF_STRING,2,"农");

menu.AppendMenu(MF_STRING,3,"工");

menu.AppendMenu(MF_STRING,4,"商");

m_btn2.m_hMenu = menu;

八,点击btn2不论什么地方,都会弹出菜单,例如以下图所看到的。

九,btn2的响应函数例如以下:

void CCBCGPMenuButtonDlg::OnButton2()

{

if( 1 == m_btn2.m_nMenuResult )

AfxMessageBox("士");

else if( 2 == m_btn2.m_nMenuResult )

AfxMessageBox("农");

else if( 3 == m_btn2.m_nMenuResult )

AfxMessageBox("工");

else if( 4 == m_btn2.m_nMenuResult )

AfxMessageBox("商");

if( m_btn2.m_bDefaultClick && 0 == m_btn2.m_nMenuResult )

AfxMessageBox("选择阶层");

}

十,在添加一个button并关联CBCGPMenuButton类型的变量m_btn3。CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中将m_btn3的m_bStayPressed 设置成FALSE。这样按下的时候button外表不会发生变化。

m_btn3.m_bStayPressed = FALSE;

十一,在CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中

m_btn2.m_bOSMenu = FALSE;

菜单的界面有变化。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVfemhpZGFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

 
源代码下载:

BCG菜单button的简单使用的更多相关文章

  1. 仿path菜单button的实现

    path刚出来时.其菜单button也算是让大多数人感到了惊艳,如今看来事实上是非常easy的就是动画的结合. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...

  2. Phaser提供了Button对象简单的实现一个按钮

    Phaser是一个简单易用且功能强大的html5游戏框架,利用它可以很轻松的开发出一个html5游戏.在这篇文章中我就教大家如何用Phaser来制作一个前段时间很火爆的游戏:Flappy Bird,希 ...

  3. 纯css实现二级导航菜单效果,通过简单的鼠标事件操作页面元素样式变换实现二级导航菜单的功能,非常简单实用,

    HTML代码如下 <!-- 头部导航栏开始--><div id="nav"><dl class="sy"><dt> ...

  4. Masonry 创建Button的简单使用

    代码创建控制器,控件在实际开发中很实用,方便快捷,而Masonry第三方框架更是将代码创建效率提高了很多! 如何代码创建?如何使用第三方框架? 1.首先删除系统自带的SB,详见下图 2.在AppDel ...

  5. 纯CSS实现二级导航下拉菜单--css的简单应用

    思想:使用css的display属性控制二级下拉菜单的显示与否.当鼠标移动到一级导航菜单的li标签时,显示二级导航菜单的ul标签.由于实现起来比较简单,所以在这里直接给出了参考代码. 1.纯CSS二级 ...

  6. DIV+CSS制作二级横向弹出菜单,略简单

    没有使用JavaScript控制二级菜单的显示,结果如上图所示. 代码如下: <!DOCTYPE html> <html> <head> <meta char ...

  7. swift button一些简单设置

    1,按钮的创建(1)按钮有下面四种类型: UIButtonType.ContactAdd:前面带“+”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果 UIButtonType.DetailDiscl ...

  8. 设置右上角的菜单button

    效果如图: 刚開始是单独做了个button.发现无法调margin,后来想到外面套一个布局 <?xml version="1.0" encoding="utf-8& ...

  9. Android 中的菜单 OptionsMenu的简单应用

    OptionsMenu就是安卓手机中的菜单选项 首先 要实现对菜单的操作就要先重写OnCreateOptionsMenu(Menu menu)方法 通常有两种方法来实现对菜单中选项的添加 第一种是动态 ...

随机推荐

  1. webstorm卡顿

    http://blog.csdn.net/qq673318522/article/details/50583831 http://www.xiaobai8.com/Blog/1000.html

  2. vue2搭建简易spa

    使用vue-cli来配置webpack,webpack是一个打包工具,使程序模块化 全局安装vue-cli: npm install -g vue-cli 安装好后,使用vue-cli脚手架配置web ...

  3. mac 安装 python 配置||虚拟环境

    前篇:http://www.cnblogs.com/ostrich-sunshine/p/8747791.html 介绍了 Mac 下 python 的一些相关知识. 这篇介绍 python3 的安装 ...

  4. python实现贪吃蛇

    贪吃蛇的算法还是比较简单的,蛇的移动我是通过不停添加一个head方块,然后判断应该加到蛇头的哪个方向,加完后删掉蛇尾就行了,如果吃到食物就不删蛇尾. 只是一个贪吃蛇只需要70行代码左右就可以了,后来又 ...

  5. 调试UPX压缩的notepad

    @date: 2016/11/29 @author: dlive 0x01 运行时压缩 对比upx压缩前后的notepad可以看到如下特点 PE头的大小一样 节区名称改变(.text -> .U ...

  6. OpenGL ES 画直线代码实例

    http://blog.csdn.net/yexiaozi_007/article/details/7978620 以画xyz坐标轴为例,很多人会遇到用glcolor设置了颜色,但是直线画出来还是黑色 ...

  7. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---54

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  8. 泛型数组 + 记录类型 + Json 之间的转换

    unit Unit3; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...

  9. map、hash_map、unordered_map 的思考

    #include <map> map<string,int> dict; map是基于红黑树实现的,可以快速查找一个元素是否存在,是关系型容器,能够表达两个数据之间的映射关系. ...

  10. springBoot 环境

    环境约束 jdk1.8:Spring Boot 推荐jdk1.7及以上:maven3.x:maven 3.3以上版本:Apache Maven 3.3.9.IntelliJIDEA2017:Intel ...