MFC combobox下拉内容不显示

程序可以实现,编辑的时候三角下拉了,但是就是没有内容,尝试了data里添加也尝试Addstring都没有响应内容,求解惑!

img

img

看看你这些添加下拉的代码写在哪里了,是不是写在 InitDialog 里面的

以下内容部分参考ChatGPT模型:


问题的原因可能是没有正确地设置combobox的数据源。可以尝试以下几个步骤来解决问题:

  1. 确认combobox的ID和控件变量的命名是否正确。可以在resource.h中查看combobox的ID是否正确,并在代码中确认控件变量是否与ID对应。

  2. 确认combobox的数据源是否正确设置。可以使用以下代码设置combobox的数据源:

    CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO1);
    pComboBox->AddString(_T("Item 1"));
    pComboBox->AddString(_T("Item 2"));
    pComboBox->AddString(_T("Item 3"));
    

    上述代码会在combobox中添加三个选项,如果combobox下拉内容仍然没有显示,那么可以尝试在OnInitDialog()函数中添加该代码,确保在窗口初始化时设置了combobox的数据源。

  3. 确认combobox的样式是否正确设置。可以在combobox属性中确认样式是否正确设置为了下拉列表框。

    如果上述步骤都没有解决问题,可以尝试在窗口初始化时使用下面的代码设置combobox的样式和数据源:

    CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_COMBO1);
    pComboBox->ResetContent();
    pComboBox->ModifyStyle(0, CBS_DROPDOWNLIST);
    pComboBox->AddString(_T("Item 1"));
    pComboBox->AddString(_T("Item 2"));
    pComboBox->AddString(_T("Item 3"));
    

    该代码会清空combobox的内容,设置样式为下拉列表框,并添加三个选项到combobox中。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快

  • 这篇文章:MFC中下拉条(组合框)combo box的使用图文教程 也许能够解决你的问题,你可以看下
  • 除此之外, 这篇博客: MFC基础:控件中的 ComboBox下拉框控件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 添加数据
      (1)通过Data属性添加,以分号间隔;
      在这里插入图片描述
      (2)向下拉框的结尾添加数据
    // CComboBox#AddString()向控件的末尾添加数据
    m_combobox1.AddString(TEXT("COM4"));
    m_combobox1.AddString(TEXT("COM5"));
    // CComboBox#InsertString()向控件的指定的索引位置插入数据
    m_combobox1.InsertString(1, TEXT("COM10"));
    // 从控件的Data列表中选则当前显示的数据
    m_combobox1.SetCurSel(1); 
    
    • 调节下拉框的高度
      在这里插入图片描述
    • 从下拉框中删除数据
    // 删除下拉框中指定索引的数据
    m_combobox1.DeleteString(1);
    
    // 清空下拉框中的所有数据
    m_combobox1.ResetContent();
    
    • 获取下拉框中选中的当前的哪条数据
    // 获取当前选中的数据的索引: 索引从0开始:没有数据被选中返回-1
    int nSelectdIndex = m_combobox1.GetCurSel();
    // 获取当前选中的文本
    if (nSelectdIndex >= 0) {
    	CString content;
    	m_combobox1.GetLBText(nSelectdIndex, content);
    	MessageBox(content);
    } else {
    	MessageBox(TEXT("没有数据被选中"));
    }
    
    • Type属性:
      (1)Dropdown:可以从下拉列表中选择一项,也可以自己输入:默认类型
      (2)Drop List:只能从下拉列表中选择一项,不能修改
      (3)Simple:只能输入,相当于编辑框
    • 下拉框选择改变事件:响应 CBN_SELCHANGE 事件,在其响应函数中判断当前选中的是哪个