MFC下拉框

一、下拉框的基本属性

1、添加数据

右键选择下拉框,点击属性,里面有一个“数据选项”。

输入数据,用分号“;”(英文的分号)来分割数据。

2、修改为不可修改的下拉框

属性里选择类型,改为下拉列表。

3、按照自己输入的数据顺序排序

下拉框默认按照ASCⅡ码的首字母排序,要按照自己输入的顺序排序需要修改属性:

排序改为False即可

4、通过添加变量,往下拉框里添加数据

1)右键选中下拉框,添加变量:

 2)在OnInitDialog中添加变量初始化代码:

AddString(TEXT("唐僧"));

5、设置下拉框默认显示的数据

m_cbx.SetCurSel(0);

使用如下API,参数为上述数据的索引,从0开始,即为“唐僧”。

 6、插入和删除

1)插入

m_cbx.InsertString(4, TEXT("白龙马"));

参数为索引要插入的字符

插入到沙僧后面:

 

 

2)删除

m_cbx.DeleteString(3);

参数为索引

删除了沙僧:

 

 

7、获取下拉框的内容

1)初始化代码中获取

m_cbx.GetLBText(1,str);

利用如下API,第一个参数为索引,第二个为储存索引值对应数据的CString类型的buf。

 如下代码获取孙悟空

	//获取1号的索引的具体内容
	CString str;
	m_cbx.GetLBText(1,str);

	MessageBox(str);

 2)利用事件获取

右键下拉框属性,选择“控件事件”,再选择SELCHANGE:

该事件的作用是,只要一切换,就会触发该事件。

添加之后,编写如下代码:

void CcomboBoxCtrDlg::OnCbnSelchangeCombo1()
{
	// TODO: 在此添加控件通知处理程序代码

	//拿到索引位置
	int index = m_cbx.GetCurSel();

	CString str;
	m_cbx.GetLBText(index, str);

	MessageBox(str);
}

 其中API,GetCurSel()的返回值为int:

  • 6
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC的列表框控件中,可以通过一些代码操作来实现在列表框中插入下拉框。 首先,在对话框资源中添加一个列表框控件,并为其设置一个标识符。 然后,在对话框类的OnInitDialog函数中,添加以下代码来创建一个下拉框: ``` CComboBox *pComboBox = new CComboBox(); pComboBox->Create(WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST, CRect(0, 0, 100, 200), this, 1); pComboBox->AddString(_T("Option 1")); pComboBox->AddString(_T("Option 2")); pComboBox->AddString(_T("Option 3")); pComboBox->SetCurSel(0); CRect rect; GetDlgItem(IDC_LISTBOX)->GetWindowRect(&rect); ScreenToClient(&rect); pComboBox->SetWindowPos(NULL, rect.left, rect.top, rect.Width(), rect.Height(), SWP_SHOWWINDOW); ``` 以上代码将创建一个下拉框,将其添加到对话框中并显示在列表框的位置。 最后,在对话框类中的OnBnClickedButton函数中,添加以下代码来将下拉框插入到列表框中: ``` CListBox *pListBox = (CListBox*)GetDlgItem(IDC_LISTBOX); HWND hWnd = pListBox->GetSafeHwnd(); pComboBox->ModifyStyle(0, WS_POPUP | WS_BORDER, 0); pComboBox->SetParent(CWnd::FromHandle(hWnd)); pComboBox->ShowWindow(SW_SHOW); ``` 通过以上代码,我们将下拉框插入到列表框中,并且可以在对话框中显示和使用该下拉框。 需要注意的是,这只是一种插入下拉框的方法,具体的实现可能会根据实际需求有所不同。另外,由于代码长度的限制,这里只是给出了一个简单的示例,实际使用时还需要根据具体情况进行适当的修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值