MFC COMBO-BOX最详细教程

找了好多,这是讲的最清楚的,与大家共享!

转:https://blog.csdn.net/fym0121/article/details/7515862

当你只需从一列对象中选出一个时,使用COMBO BOX是一个好主意,因为它节省空间。这篇文章讲述了如何使用COMBO BOX操作一列对象。

 

 

1、初始化COMBO BOX

我假设读者已经新建了一个对话框,并将一个COMBO BOX 拖放到这个对话框上。现在,右键那个COMBO BOX控件 --> 添加变量。类别选Control,类型是COMBOBOX,变量名我们输入m_cb1。

大家会发现,在我们项目的对话框类中,已经加入了CComboBox  m_cbExample;  的定义

如图1 所示,COMBO BOX有一个下拉列表,我们现在要把那些下拉的字符串添加到COMBO BOX中,即初始化COMBO BOX。初始化,我们放到对话框类的OnInitDialog函数中。CComboBox类的AddString方法,用于添加这些字符串。

 

[cpp] view plain copy

  1. BOOL CRRDlg::OnInitDialog()  //对话框的初始化,我的项目名叫RR  
  2. {  
  3.     CDialog::OnInitDialog();     
  4.     m_cb1.AddString(_T("Alice"));   //添加字符串  
  5.     m_cb1.AddString(_T("Bob"));  
  6.     m_cb1.AddString(_T("Charlie"));  
  7.     m_cb1.AddString(_T("David"));  
  8.     m_cb1.AddString(_T("Bob"));  
  9.   
  10.     m_cb1.SetCurSel(0);   //默认选择第一个  
  11. }  

 

2、检索COMBO BOX

 

 

初始化好了后,就该使用了,我们在图1 所示的下拉列表中选择一个,然后点击Button1,弹出一个框,告诉我们,刚才是选择了哪个。在IDE中,双击Button1,添加处理代码。

 

 

[cpp] view plain copy

  1. void CRRDlg::OnBnClickedButton1()  
  2. {  
  3.     // TODO: 在此添加控件通知处理程序代码  
  4.     UpdateData(TRUE);                       //这个函数的使用请参考数据交换UpdateData,那篇文章  
  5.     int index = m_cb1.GetCurSel();       //这个函数用于得到用户选择的是下拉列表中的第几行,第一行的话,返回0,依次类推  
  6.     CString strI;  
  7.     strI.Format(_T("%d"),index);  
  8.     CString strC;  
  9.     m_cb1.GetLBText(index,strC);        //根据行号,这个可以得到那行的字符串  
  10.     strC += strI;  
  11.     MessageBox(strC);  
  12.   
  13.     index = m_cb1.FindStringExact(0,_T("Bob"));    //检索下来列表中是否有Bob这个字符串  
  14.     if (CB_ERR != index)  
  15.     {  
  16.         strC.Format(_T("%d"),index);  
  17.         MessageBox(strC);  
  18.         m_cb1.DeleteString(index);    //如果有的话,删除  
  19.     }  
  20. }  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uboot源码——主Makefile的分析

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 参考博客:u-boot Makefile完全解读_williamwang2013的博客-CSDN博客 参考博客:U-boot主Makefile分析_XiaoBaWu的博客-CSDN博客 参考博客:U-boot配置及编译阶段…

Designing Virtual Connect for vSphere 5.x

Designing Virtual Connect for vSphere 5.x如何在 HP C7000刀笼使用VC以满足vSphere 5.x 英文视频连接如下:http://professionalvmware.com/2013/05/vbrownbag-follow-up-designing-virtual-connect-for-vsphere-with-joe-clark-elgwhoppo/1:首先介绍一…

VMware vCenter Converter 关闭SSL加密,提高35-40%性能

VMware vCenter Converter 关闭SSL加密,提高35-40%性能原文:http://www.vmwarearena.com/2013/07/improving-transfer-rate-of-p2v-and-v2v.htmlVMware vCenter Converter Standalone 5.0 is a free tool from VMware to easily perform P2V(Physical to virtual co…

图像拼接算法及实现

第一章 绪论 1.1 图像拼接技术的研究背景及研究意义 图像拼接(image mosaic)是一个日益流行的研究领域,他已经成为照相绘图学、计算机视觉、图像处理和计算机图形学研究中的热点。图像拼接解决的问题一般式,通过对齐一系列空间重叠的图像,构…

程序员,你还在 Select * 吗?

应用程序慢如牛,原因多多,可能是网络的原因、可能是系统架构的原因,还有可能是数据库的原因。 那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程…

学习笔记-记ActiveMQ学习摘录与心得(二)

上个周末被我玩过去了,罪过罪过,现在又是一个工作日过去啦,居然有些烦躁,估计这几天看的东西有点杂,晚上坐下来把自己首要工作任务总结总结。上篇学习博客讲了ActiveMQ的特性及安装部署,下面先把我以前启动…

谈谈C#中的三个关键词new , virtual , override(装载 Winner.Net)

C#支持单继承,说到继承就不得不说new,virtual和override这三个关键词,灵活正确的使用这三个关键词,可以使程序结构更加清晰,代码重用性更高。 以下是msdn中对new,virtual和override的定义: …

unsigned char s1 : 2的用法

#include<stdio.h> #include<stdlib.h> //默认按照四字节对齐 //#pragma pack(1) union V {struct X{unsigned char s1 : 2;unsigned char s2 : 3;unsigned char s3 : 3;} x;unsigned char c; } v; //#pragma pack()int main(void) {v.c 100;//对应的二进制数字是…

juc线程池原理(六):jdk线程池中的设计模式

一、jdk中默认线程池中的代理模式 单例类线程池只有一个线程&#xff0c;无边界队列&#xff0c;适合cpu密集的运算。jdk中创建线程池是通过Executors类中提供的静态的方法来创建的&#xff0c;其中的单例类线程池的方法如下&#xff1a; public static ExecutorService newSin…

Code First :使用Entity. Framework编程(6) ----转发 收藏

Chapter6 Controlling Database Location,Creation Process, and Seed Data 第6章 控制数据库位置&#xff0c;创建过程和种子数据 In previous chapters you have seen how convention and configuration can be used to affect the model and the resulting database schema.…

计算多个文档之间的文本相似程度

首先我们上代码&#xff1a; from sklearn.feature_extraction.text import CountVectorizer corpus [ UNC played Duke in basketball, Duke lost the basketball game, I ate a sandwich ] vectorizer CountVectorizer(binaryTrue,stop_wordsenglish)#设置停用词为英语&…

双边滤波

双边滤波 高斯滤波是最常用的图像去噪方法之一&#xff0c;它能很好地滤除掉图像中随机出现的高斯噪声&#xff0c;但是在之前的博客中提到过&#xff0c;高斯滤波是一种低通滤波&#xff08;有兴趣的点击这里&#xff0c;查看之前的博客&#xff09;&#xff0c;它在滤除图像中…

用SQL语句更改数据库名,表名,列名

参考SQL Server联机丛书的 sp_renamedb与sp_rename一、更改数据库名sp_renamedb更改数据库的名称。语法sp_renamedb [ dbname ] old_name ,[ newname ] new_name 参数[ dbname ] old_name 是数据库的当前名称。old_name 为 sysname 类型&#xff0c;无默认值…

Gabor滤波器原理

一、什么是Gabor函数&#xff08;以下内容含部分翻译自维基百科&#xff09; 在图像处理中&#xff0c;Gabor函数是一个用于边缘提取的线性滤波器。Gabor滤波器的频率和方向表达同人类视觉系统类似。研究发现&#xff0c;Gabor滤波器十分适合纹理表达和分离。在空间域中&#x…

Linux中的MAN命令

学习Linux的同学&#xff0c;都会使用man来查阅一些命令的帮助信息&#xff0c;常见的使用方法就是“man 命令名称”这样简单的格式。本文就对man命令简要介绍一下。 l man命令的章节 man就是manual的缩写&#xff0c;用来查看系统中自带的各种参考手册&#xff0c;但是手册页分…

全局曝光和卷帘曝光的区别

全局曝光和卷帘曝光是常见的相机曝光方式。一般来说&#xff0c;CCD相机是全局曝光&#xff0c;而CMOS相机则存在卷帘曝光。那么&#xff0c;这两种方式孰优孰劣呢&#xff1f;或者说&#xff0c;他们两者的差别在哪里呢&#xff1f;那么&#xff0c;先从两者的定义说起。 全局…

Titanium 列表显示TableView

效果&#xff1a; Titanium中列表显示需要创建TableView var tableView Ti.UI.createTableView({style: Ti.UI.iPhone.TableViewCellSelectionStyle.NONE //TableView样式}); TableView的每一个行叫做TableViewRow 设置TableViewRow的hasChild为true便可显示这样的效果&#x…

discuz x2.5插件开发傻瓜图文教程,用demo说话

2019独角兽企业重金招聘Python工程师标准>>> 刚刚接触DZ的插件开发&#xff0c;记个傻瓜图文教程&#xff0c;一是分享给初学者&#xff0c;二是方便自己以后回忆。 本篇文章适合人群&#xff1a;有一定的PHP开发经验&#xff0c;想通过一个简单明了的demo快速了解…

uva 11174(排列组合+搜索)

依然是liurujia计数练习题。依然是自己想没想出来&#xff0c;在MOD是素数的情况下除以x即为乘x的逆。这个真心以前没听过&#xff0c;用了这个方法后处理就变得十分巧妙。 整个程序步骤还是很清晰的&#xff0c;先上来算阶乘与逆&#xff08;求数的逆还是有点没理解透&#xf…

S5PV210的地址映射简介

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 S5PV210属于ARM Cortex-A8架构&#xff0c;是32位的CPU&#xff0c;有32根地址线和32根数据线。 这表明该CPU的寻址空间为4G&#xff0c;地址映射关系见下述。 S5PV210的地址映射 S5PV210的地址映射…