Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >VC++ MFC -> ComboBox,GetCurSel()

VC++ MFC -> ComboBox,GetCurSel()
EN

Stack Overflow用户
提问于 2018-03-07 00:04:16
回答 2查看 1.1K关注 0票数 0

我哪里出问题了?我有这个密码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CComboBox m_item;

if((m_item.GetCurSel()) == atoi("TC001"))
    MessageBox(L"TC001");

if((m_item.GetCurSel()) == atoi("TC002"))
    MessageBox(L"TC002");

如果我在ComboxBox中选择“ComboxBox”,它会弹出 "TC001“和"TC002”消息框。

如果我在ComboxBox中选择“ComboxBox”,它将不会显示任何 MessageBox

为什么?

EN

回答 2

Stack Overflow用户

发布于 2018-03-07 00:33:42

来自阿托伊的文档

用str指向的字节字符串解释整数值。 丢弃所有空白字符,直到找到第一个非空白字符,然后尽可能多地使用字符来形成有效的整数表示,并将它们转换为整数值。有效整数值由以下部分组成:

  • (可选)正负号
  • 数字数字

..。如果不能执行转换,则返回0​。

字符串"TC001""TC002"不能转换为整数,因此对atoi的调用在这两种情况下都返回0

CComboBox::GetCurSel返回

组合框列表框中当前选定项的基于零的索引.

因此,如果具有显示字符串"TC001"的项是第一个项,则GetCurSel返回0,这是atoi在非整数输入上返回的相同值。这两个比较都返回true,因此显示了两个消息框。

解决办法有两方面:

  • 了解如何使用调试器。
  • 不要使用字符串比较或转换来确定选定的值。相反,请使用位置索引,或将自定义数据附加到每个项。这需要调用CComboBox::SetItemData,或者切换到提供InsertItem成员的CComboBoxEx类,这样就可以传递康博伊特结构并使用其lParam成员。
票数 3
EN

Stack Overflow用户

发布于 2018-03-07 01:47:09

看起来您想要比较选定的文本,而不是选定的项目编号。要做到这一点,请使用CComboBox::GetLBText()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CStringW text;
m_item.GetLBText(m_item.GetCurSel(), text);

if (text == L"TC001")
    MessageBox(L"TC001");
else if (text == L"TC002")
    MessageBox(L"TC002");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49146890

复制
相关文章
VC++ MFC 常用技巧 (一)
VC++ MFC 常用技巧(一)  <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 我现在学习
ternturing
2018/09/12
1.4K0
MFC中的下拉框ComboBox使用
Combo Box (组合框)控件很简单,可以节省空间。从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。下面的例子简要说明如何利用 MFC CComboBox Class来操作字符串列表。  1、定义控件对应变量
acoolgiser
2019/01/17
7.2K0
VC++在MFC程序中如何注册/注销ActiveX控件(.OCX)
         LPCTSTR pszDllName = OcxFileName ;         //ActiveX控件的路径及文件名        
阳光岛主
2019/02/19
1.6K0
【MFC】MFC基础篇(1)
CFrameWnd: 框架窗口,负责创建应用主窗口,含标题栏,菜单栏,工具栏,状态栏等 。
半生瓜的blog
2023/05/13
1.7K0
【MFC】MFC基础篇(1)
mfc vc++ 如何求点到直线的距离 判断点是否在线要素上?
首先知道线要素由点要素数组points构成,points可以是CPoint类型、Point类型、或者自定义类型。要判断Point类型的点p是否在由points组成的线要素上,只需要遍历计算该点到每一条线的距离,来判断点是否在线要素的某一部分上。
acoolgiser
2019/01/16
1K0
MFC控件编程之组合框跟列表框
  如果要使用组合框跟列表框.那么就要知道.组合框列表框是最核心的东西就是索引. 索引是从0开始的.
IBinary
2019/05/25
1.1K0
[MFC]使用强大的第三方串口类 CSerialPort
原文链接:http://blog.csdn.net/humanking7/article/details/48110543
祥知道
2020/03/10
4K0
VC控件使用小结
      这段时间通过使用MFC做车牌识别系统和媒体播放器,重新温习了一下MFC,特别是控件的使用,同时也学习了ADO技术、Socket网络编程、文件传输、OpenCV、多线程、数字图像处理、Windows Media Player、CActiveMovie控件、DricetShow多媒体等的知识,不过由于时间有限,有些东西也没有深入,但是学习编程的方法都是相通的。觉得有时还是通过项目实践学习的知识比较快,通过参考别人的代码结合MSDN这些API参考文档,加深对一门新技术的理解和消化对于初学者来时往往不失为一种快速的入门手段。废话不多说了,进入主题吧,今天把我学习到的MFC控件做一个小结吧,希望能给其他的人以帮助吧。
ccf19881030
2019/04/24
1.9K0
MFC 如何给ComboBox下拉框控件添加item,如何添加顺序索引的数据项?
首先参考博客:https://blog.csdn.net/smtrobot/article/details/49306727
acoolgiser
2019/01/17
2.9K0
简单的TCP客户端发包工具[通俗易懂]
链接:https://pan.baidu.com/s/1MzNUzwd7WwBat6vNMcu6Ow 密码:ibuv
全栈程序员站长
2022/10/04
3.7K0
简单的TCP客户端发包工具[通俗易懂]
什么是QT?「建议收藏」
为学习QT首先必须搞明白的一个问题是,什么是QT,查找资料,对于QT有如下的认识:
全栈程序员站长
2022/08/30
1.2K0
VC++ InvalidateRect
该函数向指定的窗体添加一个矩形,然后窗口客户区域的这一部分将被重新绘制。
全栈程序员站长
2022/11/17
1.7K0
不要看《深入浅出MFC》![通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 开篇先声明一点,《深入浅出MFC》是一本不错的书,对于MFC原码的剖析,十分到位,特别是前面对于MFC六大关键技术的总结和演示程序,尤其精彩。那为什么我要说不要看这本书呢? 我是站在一个初学者的角度来说这句话的,也是我当初看了这本书的一些感受(因为过于难以理解,差了几章没有看,后来再补的),这本书对于MFC的讲解对一个初次接触MFC的人来说,内容过于的晦涩难懂,大段大段的原码引用,一定会使人头晕目眩,不知所措,就算忍受着煎熬读完,我敢保证,你坐在电脑前,打开vc++,肯定还是不知道怎么用,甚至添加一个控件成员变量都不会,更不要说用MFC开发一个windows程序了。 “深入浅出”这四个字,确实有点名不副实,也有着一定的误导作用,大多看这本书的朋友,我想一定是被它的名气所吸引的。不过,就我到现在的学习经验,我觉得,如果你不是要用到底层的开发,对于MFC的原码,不了解也没什么关系,只要知道其基本工作机制,就可以了,而这本书,完全可以不看,以目前的趋势,开发工具日益便捷,很多东西都是用的“代码自动生成”,除非,你想充分diy,一般默认这些就可以了。当然,能了解原理更好了,不过不是必须罢了。 另外,侯先生的语言也过于跳跃,类似于网页中的连接,有时让人无所适从,这大概也算是他的风格吧,不过,对于教材,或者说技术性的书,还是以线带面为好。 对于有一定MFC编程经验的人来说,了解MFC原码,对编程水平的提高还是十分有帮助的,这里,我也推荐这本书!! 对于想学习MFC的朋友,我还是推荐《VC++技术内幕》( Programming Visual C++ ),当初我看的是英文的第五版,现在好像第六版也出来了吧,中文的好像只有第四版。 我还建议大家在学MFC之前看一点WINDOWS编程的书,了解一些windows的工作原理,像消息机制啦等等 当然了,这都是我个人的一些看法,仅供参考!
全栈程序员站长
2022/09/10
1.1K0
C#-webBrowser-comboBox
comboBox关于下拉框选择年月日 难点: 1.只有选中年才能选月只有选中月才能选年。 2.根据年月判断2月有多少天
用户9857551
2022/06/28
1.6K0
C#-webBrowser-comboBox
combobox控件——c#
将ComboBox的DropDownStyle 属性设置为 DropDownList即可. Simple 简单的下拉列表框(始终显示列表)、 DropDown 可以编辑,与有下拉列表。默认. DropDownList 只有下拉列表,不能编辑。
vv彭
2020/12/31
1.2K0
easyUI的combobox实现级联
easyUI重写了select,取而代之的是combobox,有如下几种方式可以创建一个combobox
全栈程序员站长
2022/11/03
1.9K0
VC++界面库[通俗易懂]
刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得。不敢藏私,希望和一些新手朋友们分享交流。
全栈程序员站长
2022/11/09
3K0
VC Tab Control 切换窗体
1. 新建一个MFC工程,取名xyTabControl,选择Dialog based,然后Finish。
阳光岛主
2019/02/19
2K0
各种语言按钮事件特征码
比如:弹提示框,就下MessageBoxA,注册表的,就下RegOpenKeyA等等
阿珏
2018/08/08
2.1K0
VC++实现窗口置顶
 最近在跟着Visual C++网络编程开发与实战视频教程做HttpSourceViewer这个MFC项目时,可以看我Github上的项目HttpSourceViewer,目前基本实现了所有功能,就是关于ALT搜索和调用迅雷7SDK下载还有些问题。看到作者jhkdiy的置顶窗口,于是Google了一下相关方法,没想到蛮简单的。
ccf19881030
2019/04/24
2.2K0

相似问题

vc++ MFC项目

20

MFC ComboBox DrawItem问题

13

刷新MFC界面VC++ 2010

12

MFC -放大镜VC++

10

C++ MFC AutoComplete ComboBox

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文