首先删除注册表
HKEY_CURRENT_USER\Software\应用程序向导生成的本地应用程序
之下你这铬软件的配置

CMFCToolBar m_myToolBar;
CMFCToolBarImages m_mfcToolbarImage;

//设置一个ID,不然添加不到菜单的视图工具栏集合
m_myToolBar.CreateEx(this, TBSTYLE_FLAT, dwStyle, CRect(1, 1, 1, 1), 1000);
m_myToolBar.AddToolBarForImageCollection(IDR_TOOLBAR1, IDB_BITMAP1);
CString name;
bNameValid = name.LoadString(IDS_MyToolBar);
ASSERT(bNameValid);
m_myToolBar.SetWindowText(name);
m_myToolBar.SetSizes(CSize(23, 22), CSize(16, 15));//设置按钮大小
m_mfcToolbarImage.SetImageSize(CSize(16, 15), TRUE);

CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
m_mfcToolbarImage.AddImage(bmp);

bmp.DeleteObject();

//int aa = m_myToolBar.SetUserImages(&m_mfcToolbarImage);

m_myToolBar.RemoveAllButtons();

// 按钮ID 第几个图片
m_myToolBar.InsertButton(CMFCToolBarButton(ID, 0, _T("提示?"), TRUE, 0));// 在这里CMFCToolBarButton()第四个参数需要设置为true,这样在重绘的时候才会,调用自己设置的图像。

m_myToolBar.AdjustSizeImmediate();

//添加组合框
m_myToolBar.InsertButton(CMFCToolBarComboBoxButton(2000, 0), index);

//设置组合框属性
m_comboAddress = (CMFCToolBarComboBoxButton*)m_myToolBar.GetButton(index);
m_comboAddress->EnableWindow(TRUE);
m_comboAddress->SetCenterVert();
m_comboAddress->SetDropDownHeight(100);//设置下拉列表的高度
m_comboAddress->SetFlatMode();

//添加内容
m_comboAddress->AddItem(_T("once"));
m_comboAddress->AddItem(_T("if only"));
m_comboAddress->AddItem(_T("P.S.I Love You"));
m_comboAddress->AddItem(_T("Love Me If You Dare"));
m_comboAddress->SelectItem(0); //默认选中

//添加消息处理映射
ON_COMMAND(IDR_COMBOBOX1, &CMainFrame::OnClickComboBox)
ON_CBN_SELCHANGE(IDR_COMBOBOX1, &CMainFrame::OnSelectChange)

afx_msg void OnClickComboBox();
afx_msg void OnSelectChange();

void CMainFrame::OnClickComboBox()
{//OnClickComboBox没有做任何处理,但是如果去掉的话,组合框将编程灰色,无法使用

}
void CMainFrame::OnSelectChange()
{
CMFCToolBarComboBoxButton* pSrcCombo = CMFCToolBarComboBoxButton::GetByCmd(IDR_COMBOBOX1, TRUE);
int index = m_comboBox->GetCurSel();
index = pSrcCombo->GetCurSel();
CString str = pSrcCombo->GetItem(index);
AfxMessageBox(str);
}

CMFCStatusBar

..添加消息映射,不然自定义的改变颜色无效
ON_COMMAND_RANGE(ID_START, ID_END, NULL)  //indicators[] 里面第一个和最后一个

if (!m_wndStatusBar.Create(this))
{
TRACE0("未能创建状态栏\n");
return -1; // 未能创建
}
m_wndStatusBar.SetIndicators(indicators, sizeof(indicators) / sizeof(UINT));
m_wndStatusBar.SetPaneWidth(1, 105);
m_wndStatusBar.SetPaneTextColor(1, RGB(0, 0, 255));
m_wndStatusBar.SetPaneText(1, strTime);

CMFCToolBar、CMFCStatusBar的更多相关文章

  1. MFC菜单、工具栏和状态栏

    菜单:CMenu类 CMenu类的主要成员函数 BOOL LoadMenu(UINT nIDResource); 加载菜单资源,并将其附加到CMenu对象上.参数nIDResource指定了要加载的菜 ...

  2. VC MFC在CMFCToolBar工具栏中加入组合框

    如何在CMFCToolBar工具栏中加入组合框等控件,且先看在线MSDN上怎么说的: 要增加一个组合框,需要完成以下步骤: 1.在工具栏资源中,增加一个对应ID资源号的按钮. 2.在主框架(mainf ...

  3. VC++ 浅谈VS2010中CMFCToolBar的用法

    本文将给大家介绍Visual Studio 2010中CMFCToolBar的用法,CMFCToolBar可以让用户自定义工具栏图标,使用静态成员函数SetUserImages()将一个CMFCToo ...

  4. VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用)

    鸡啄米在上一节教程中讲了工具栏资源及CToolBar类,本节继续讲解工具栏的相关知识,主要内容包括工具栏的创建.停靠与使用. 工具栏的使用 上一节中鸡啄米提到过,一般情况下工具栏中的按钮在菜单栏中都有 ...

  5. VS2008 工具栏CMFCToolBar的使用总结(转)

    (一)自定义工具栏 自定义工具栏,分两种情况:一是直接添加工具栏,并自己绘制图标:二是,添加工具栏,然后与BMP关联,与VC6.0中的自定义彩色工具栏类似. 1.  自绘工具栏 1)添加Toolbar ...

  6. 【MFC】动态创建CMFCToolbar图标不显示问题

    最近遇到一个问题,需要动态的从xml文件读取一系列图标文件,加载到一个toolbar中,由于使用的是vs2008 with sp1 feature pack,自然想到用CMFCToolbar来做,思路 ...

  7. VS2010-MFC(工具栏:工具栏的创建、停靠与使用)

    转自:http://www.jizhuomi.com/software/217.html 上一节教程讲了工具栏资源及CToolBar类,本节继续讲解工具栏的相关知识,主要内容包括工具栏的创建.停靠与使 ...

  8. js-静态、原型、实例属性

    本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...

  9. 【.net 深呼吸】细说CodeDom(2):表达式、语句

    在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...

随机推荐

  1. windows 匿名管道: 父进程与子进程通信 (进程间通信之CreatePipe)

    看了很多篇相关的资料,感觉这个还是比较靠谱的: 进程间通信之CreatePipe   https://blog.csdn.net/dacxu/article/details/30071081 特别是  ...

  2. react-native中使用滚动视图

    ScrollView是一个通用的可滚动的容器,你可以在其中放入多个组件和视图,而且这些组件并不需要是同类型的. ScrollView 不仅可以垂直滚动,还能水平滚动(通过horizontal属性来设置 ...

  3. vue $refs的基本用法

    <div id="app"> <input type="text" ref="input1"/> <butto ...

  4. Vue(基础五)_vue中用ref和给dom添加事件的特殊情况

    一.前言 这篇文章涉及的主要内容有: 1.ref绑定在标签上是获取DOM对象 2.ref绑定在子组件上获取的是子组件对象 3.案列:自动获取input焦点 二.主要内容 1.基础内容: ref 被用来 ...

  5. POE 供电

    受电设备(PD)和供电设备(PSE) 标准的五类网线有四对双绞线但是在10M BASE-T和100M BASE-T中只用到其中的两对.IEEE80 2.3af允许两种用法: 1.应用空闲脚供电时4.5 ...

  6. RS485 / RS422

    RS422可以变为RS485:A和Y短路(然后接T/R+),B和Z短路(然后接T/R-) RS485是半双工,只有两根线通信线,要么接收状态,要么发送状态 RE为低电平,作为接收器 DE为高电平,作为 ...

  7. 序列化serialize与反序列化unserialize

    有利于存储和传递value(除了resource类型外),却不会丢失其原有类型和结构. serialize序列化时会调用魔术方法__sleep(); unserialize反序列化时会调用魔术方法__ ...

  8. 剑指Offer_编程题_3

    题目描述 输入一个链表,从尾到头打印链表每个节点的值. /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(i ...

  9. ElasticSearch的API介绍

    ElasticSearch的API介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ES是基于Restful风格 1>ES是基于Restful风格 Elasticsea ...

  10. Hadoop生产环境配置文件

    前提: ①已经搭建好zk ②已经安装好JDK 正文开始: 首先从官网下载hadoop 2.7.3 (虽然官网3.0都出了.但是目前还没经过完全的测试..待测试后...) 一.hadoop-env.sh ...