![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C++中组合框控件和编辑框的问题
谁能告诉我怎么实现:选择组合框时编辑框会自动获取数据,而不用在旁边加个按钮本人是个菜鸟,刚刚学MFC什么都不会,望高手详细指点!...
谁能告诉我怎么实现:
选择组合框时编辑框会自动获取数据,而不用在旁边加个按钮
本人是个菜鸟,刚刚学MFC什么都不会,望高手详细指点! 展开
选择组合框时编辑框会自动获取数据,而不用在旁边加个按钮
本人是个菜鸟,刚刚学MFC什么都不会,望高手详细指点! 展开
展开全部
每个控件在MFC中都有一个相关的类来控件的,比如编辑框类,有CEdit类,而类又提供了与该控件相关的一些操作.当然,组合框也不例外,其相关的类为CComboBox 类.查一下该类的成员函数,会发现有很多函数,可找你想要的,比如,这里你是想在组合框中选一行数据,然后这行数据自动显示在文本框中吧?实现如下:
首先,在对话框中添加一个COMBOBOX和一个EDITBOX,
在对话框的OnInitDialog()中写下:
//先获得该控件的指针
CComboBox *pCombo=(CComboBox *)GetDlgItem(IDC_COMBO1);
CString str;
for (int i=0;i < 5;i++)
{
str.Format(_T("item string %d"), i);
//查一下该类成员,就知道,用这个函数添加数据
pCombo->AddString( str );
}
让组合框有一个初始值.
这时,我们去点击组合框中的列表数据,选中某一个,会触发CLICK事件,因此,我们对组合框"右键"->CLASSWIZARD,添加BN_CLICKED事件,在该函数中写代码:
void CComDlg::OnSelchangeCombo1()
{
// TODO: Add your control notification handler code here
CComboBox *pCombo=(CComboBox *)GetDlgItem(IDC_COMBO1);
//获得数据分两步,先获得该行数据所在的位置,即索引
int Index=pCombo->GetCurSel();
CString str;
//用上面得到的索引去获得真正的数据,放在str中
pCombo->GetLBText(Index,str);
//将得到的数据放入编辑框中
SetDlgItemText(IDC_EDIT1,str);
}
这就可以了.
应该很清楚了.
首先,在对话框中添加一个COMBOBOX和一个EDITBOX,
在对话框的OnInitDialog()中写下:
//先获得该控件的指针
CComboBox *pCombo=(CComboBox *)GetDlgItem(IDC_COMBO1);
CString str;
for (int i=0;i < 5;i++)
{
str.Format(_T("item string %d"), i);
//查一下该类成员,就知道,用这个函数添加数据
pCombo->AddString( str );
}
让组合框有一个初始值.
这时,我们去点击组合框中的列表数据,选中某一个,会触发CLICK事件,因此,我们对组合框"右键"->CLASSWIZARD,添加BN_CLICKED事件,在该函数中写代码:
void CComDlg::OnSelchangeCombo1()
{
// TODO: Add your control notification handler code here
CComboBox *pCombo=(CComboBox *)GetDlgItem(IDC_COMBO1);
//获得数据分两步,先获得该行数据所在的位置,即索引
int Index=pCombo->GetCurSel();
CString str;
//用上面得到的索引去获得真正的数据,放在str中
pCombo->GetLBText(Index,str);
//将得到的数据放入编辑框中
SetDlgItemText(IDC_EDIT1,str);
}
这就可以了.
应该很清楚了.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询