MFC中,怎么获取ComboBox的选中项 10

intno=m_BaudRate.InsertString(0,_T("9600"));//波特率m_BaudRate.SetItemData(B9600,(DWORD_... int no = m_BaudRate.InsertString(0,_T("9600")); //波特率
m_BaudRate.SetItemData(B9600,(DWORD_PTR)&no);
no = m_BaudRate.InsertString(1,_T("19200"));
m_BaudRate.SetItemData(B19200,(DWORD_PTR)&no);
m_BaudRate.SetCurSel(0);
用int baud = m_BaudRate.GetCurSel();获取的是ComboBox选中项的下标,即0或1,我想获取到我定义的B9600或B19200,要怎么获取啊?还请高手指点一二~
展开
 我来答
啊电
2018-04-16 · TA获得超过1万个赞
知道小有建树答主
回答量:44
采纳率:100%
帮助的人:6349
展开全部

也就是说这个9600是一个中间值,你选择的是第0项,而显示的是9600,而你要取的值却是b9600。如果是这的话我建议你使用map键值,使用9600做为键,B9600做为做,在你要获取B9600的时候,可以选获取选择的文本getwindowtext(),然后将文本转int型,再find函数查找int型,最后获取查找到的值。

MFC(MicrosoftFoundationClasses),同VCL类似,是一种ApplicationFramework,随微软Visual C++开发工具发布。MFC以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从CObject 直接或间接派生,只有少部分类例外。 其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

百度网友4e923b8
2017-06-26 · TA获得超过132个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:7.6万
展开全部
用m_BaudRate.GetItemData(xxx);//xxx就是你要获得的第几个Item里的Data了。。
你这里好像用法不太对。。。SetItemData参数列表第一个参数应该是item的编号,后面那个才是数据,你定义的B9600或B19200应该存在参数列表的第二个变量里。。。。。
最好是说下你往这里放数据是为了做什么。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2013-03-19 · TA获得超过527个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:168万
展开全部
CString text;
GetDlgItemText(IDC_COMBO1,text);

IDC_COMBO1是ComboBox控件的ID。获取的文本保存在text变量里。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3038d88
2013-03-19 · TA获得超过1097个赞
知道小有建树答主
回答量:1670
采纳率:0%
帮助的人:1155万
展开全部
GetLBText( index )

记得采纳
更多追问追答
追问
具体要怎么用,能讲详细点儿吗?
GetLBText()有两个参数:nIndex和lpszText
nIndex代表选中项的下标,可用 int baud = m_BaudRate.GetCurSel(); 获取
lpszText指向是接收该字符串的缓冲区,把取出来的选择项放在里面
我理解的对吗?
那么,取出来的选择项,到底是我在ComboBox中显示的9600或19200,还是我想要的 B9600 或 B19200 呢?
追答
CString temp

m_combox.GetLBText( index, temp);

应该就这样了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zouyibbo
2013-03-19 · 超过15用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:51.2万
展开全部
你是想获取定义的B9600或B19200在combobox中所在的下标位置 吗?
追问
比如:我选中了ComboBox的第0个项,即选中页面中显示出的“9600”
我希望在程序中,获取,该选择项(即“9600”)对应的----B9600;
#define B9600 0x0C
#define B19200 0x0D
然后,将获取的 B9600 放入sio_ioctl(int port, int baud, int mode); 中 的int baud。
所以,我需要获取的是 B9600 或 B19200,麻烦大家啦~
追答
也就是说这个9600是一个中间值,你选择的是第0项,而显示的是9600,而你要取的值却是b9600。如果是这的话我建议你使用map键值,使用9600做为键,B9600做为做,在你要获取B9600的时候,可以选获取选择的文本getwindowtext(),然后将文本转int型,再find函数查找int型,最后获取查找到的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式