通常情况下,工具栏里面都是一些按钮和图片,很少可以看到下拉列表控件,但是在某些应用场合,也需要用到下拉列表控件。今天在这里就简单讲解下如何在工具栏里添加下拉列表控件。
 
添加的过程也比较简单,在CMainFrame的OnToolbarReset消息中添加如下代码:
UINT uiToolBarId = (UINT)wp;

switch(uiToolBarId)
{
case IDR_MAINFRAME:
{
CBCGPToolbarComboBoxButton comboBoxButton1(IDC_COMBO_TEST_CONTROL, CImageHash::GetImageOfCommand(IDC_COMBO_TEST_CONTROL, FALSE), CBS_DROPDOWNLIST, );
comboBoxButton1.AddItem("ComboBox节点1");
comboBoxButton1.SetPrompt("节点"); m_wndToolBar.ReplaceButton(IDC_COMBO_TEST_CONTROL, comboBoxButton1);
}
break;
}

当下拉列表控件的选项发生变动时,想获取变动后的选项内容,通过如下方式实现。第一步,在CMainFrame消息映射链中添加ON_CBN_SELENDON消息。

ON_CBN_SELENDOK(IDC_COMBO_TEST_CONTROL, OnComboTestControl)

同时在CMainFrame的头文件中添加声明,在源文件中添加实现,在实现的内部可以获取变动后的选项内容,代码如下:

void CMainFrame::OnComboTestControl()
{
CBCGPToolbarComboBoxButton* pTestControlComboBox = NULL; CObList listButtons;
if(CBCGPToolBar::GetCommandButtons(IDC_COMBO_TEST_CONTROL, listButtons) > )
{
for(POSITION pos = listButtons.GetHeadPosition(); pTestControlComboBox== NULL && pos != NULL;)
{
CBCGPToolbarComboBoxButton* pComboBox = DYNAMIC_DOWNCAST(CBCGPToolbarComboBoxButton, listButtons.GetNext(pos));
if(pComboBox != NULL && ::GetFocus() == pComboBox->GetHwnd())
{
pTestControlComboBox = pComboBox;
}
}
} if(pTestControlComboBox != NULL && pTestControlComboBox->GetComboBox() != NULL)
{
CString strName;
pTestControlComboBox->GetComboBox()->GetWindowText(strName);
CString strMsg = ("ComboBox value is :");
strMsg += strName;
MessageBox(strMsg);
}
}

当在应用程序的其它视图当中想获取该ComboBox控件时,通过如下方式实现,代码如下:

CBCGPToolbarComboBoxButton * pTestControl = (CBCGPToolbarComboBoxButton *)(((CMainFrame*)AfxGetMainWnd())->m_wndToolBar.GetButton());
pTestControl->SelectItem();
其中,GetButton函数的参数值代表添加的ComboBox控件所处的位置。
至此,在BCGControlBar工程的工具栏里添加下拉列表控件已经完成。

如何在BCGControlBar工程的工具栏里面新增下拉列表控件的更多相关文章

  1. 如何在JDBC Connection Configuration配置组件上添加控件

    如何在JDBC Connection Configuration配置组件上添加控件 最近项目刚上线,闲来无事又把Jmeter的源码拿出来研究研究,最初的目的是想扒一扒Jmeter里数据库处理的逻辑是怎 ...

  2. 如何在MFC对话框应用程序中使用ColorPicker控件

    在日常的应用程序开发中,当涉及到曲线绘制时,为了将多条不同类型的曲线区分开,常常需要将它们指定不同的颜色.今天在这里简单的记录一下,如何实现及使用ColorPicker控件.程序用到4个文件依次为:C ...

  3. H5新增form控件和表单属性

    第一个知识点:表单的属性及总结 第二个知识点:H5新增的表单控件和属性以及总结 第一个知识点: 我们常见的表单验证有哪些呢 text 文本框标签 password 密码框 checkbox 多选框 r ...

  4. 如何在web中实现类似excel的表格控件

    Execl功能非常强大,内置的很多函数或公式可以大大提高对数据的加工处理能力.那么在web中有没有类似的控件呢?经过一番搜寻,发现handsontable具备了基本的excel功能支持公式,同时能对数 ...

  5. 如何在WPF应用程序中使用视频处理控件TVideoGrabber

    要在WPF 中使用 TVideoGrabber 组件,需要像下面的方法来使用 VS.NET(DLL) 版本的组件: ——复制TVideoGrabber_x.x.x.x_x86.dll到c:/windo ...

  6. vs2010工具栏 不显示dx控件

    进入命令提示符 跳转到Dev控件安装目录,如目录D:\Program Files (x86)\DevExpress 2010.1\Components\Toolss下, 然后执行命令:ToolboxC ...

  7. 如何在WPF程序中使用ArcGIS Engine的控件

    原文 http://www.gisall.com/html/47/122747-4038.html WPF(Windows Presentation Foundation)是美国微软公司推出.NET ...

  8. ActiveReports 报表控件V12新特性 -- 页面报表新增子报表

    ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...

  9. Windows 8.1 应用再出发 (WinJS) - 几种新增控件(2)

    上篇我们介绍了Windows 8.1 和 WinJS 中新增控件中的 AppBarCommand.BackButton.Hub.ItemContainer,本篇我们接着来介绍 NavBar.Repea ...

随机推荐

  1. 使用js生成条形码以及二维码

    一.用js生成条形码这种业务场景不是很常见的,最近刚好又接到这种需求 Google一下,发现github还真有这方面的轮子,感谢github,省去了我们很多造轮子的过程, 好了言归正传,首先引入jsb ...

  2. 一种RC滤波电路的验证

    在做电源的时候,在开关管的D极经常是出现不想看到的尖峰脉冲.以CCFL推挽式缓冲电路为准,我与一个同学杨进行了相应的验证. 其中的出来的现象和反思如下: 1,加上电阻和电容串联的滤波的确能将尖峰脉冲消 ...

  3. xcap发包工具的简单使用2(发送报文)

    上一篇文章介绍了如何构造报文,现在简单讲一下发送报文的步骤 1.获取接口列表 点击主界面工具栏中的“刷新列表”按钮(或对应菜单“interface->Reference interfaces”) ...

  4. CF-697B Barnicle与691C Exponential notation

    无聊写两个题解吧,上午做比赛拉的,感触很多! B. Barnicle time limit per test 1 second memory limit per test 256 megabytes ...

  5. hdu - 1689 Just a Hook (线段树区间更新)

    http://acm.hdu.edu.cn/showproblem.php?pid=1698 n个数初始每个数的价值为1,接下来有m个更新,每次x,y,z 把x,y区间的数的价值更新为z(1<= ...

  6. 从零开始写STL-容器-list

    从零开始写STL-容器-list List 是STL 中的链表容器,今天我们将通过阅读和实现list源码来解决一下问题: List内部的内存结构是如何实现的? 为什么List的插入复杂度为O(1)? ...

  7. Mybatis中的ognl表达式。及myabtis where标签/if test标签/trim标签

    1.mybatis默认支持使用ognl表达式来生成动态sql语句 MyBatis中可以使用OGNL的地方有两处: 动态SQL表达式中 ${param}参数中 上面这两处地方在MyBatis中处理的时候 ...

  8. 【nginx】nginx与apache的优缺点比较

    参考: http://zyan.cc/nginx_php_v6/ nginx相对于apache的优点: 1.轻量级,同样的web 服务,比apache服务器占用更少的内存及资源 2.抗并发,nginx ...

  9. hdu oj 1285 确定比赛名次

    hdu oj 1285 确定比赛名次 题目: 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  10. Start Xamarin——与Microsoft 的sales development manager的闲谈

    由于在Xamarin属于微软之前,就已经有Xamarin的账号,试用过破解版的.所以4月1号微软set Xamarin free之后.就收到了Xamarin的邀请试用邮件. 试用完了之后第二天.收到邮 ...