MFC中获取下拉框的值可以通过以下步骤:
在资源编辑器中创建一个下拉框控件,并给它一个唯一的ID。
在对应的对话框类(如CDialog或CPropertyPage)中添加一个成员变量来保存下拉框控件的指针。
在对应的对话框类的DoDataExchange函数中添加下拉框控件的DDX_Control函数绑定代码,将下拉框控件与成员变量关联起来。
使用成员变量即可获取下拉框的值。通过调用成员变量的GetCurSel函数获取当前选择项的索引,再通过调用GetLBText函数获取对应索引的文本值。
下面是一个示例代码:
// 对话框类的头文件
class CMyDialog : public CDialog
{
public:
CMyDialog(CWnd* pParent = nullptr); // 标准构造函数声明
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_MYDIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 成员变量
CComboBox m_ComboBox;
// 生成的消息映射函数
afx_msg void OnBtnGetComboBoxValue();
DECLARE_MESSAGE_MAP()
};
// 对话框类的实现文件
CMyDialog::CMyDialog(CWnd* pParent /*=nullptr*/)
: CDialog(IDD_MYDIALOG, pParent)
{
}
void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_COMBO1, m_ComboBox); // 将IDC_COMBO1绑定到成员变量m_ComboBox
}
void CMyDialog::OnBtnGetComboBoxValue()
{
int index = m_ComboBox.GetCurSel(); // 获取当前选择项的索引
CString text;
m_ComboBox.GetLBText(index, text); // 获取对应索引的文本值
// 处理下拉框的值
}
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
ON_BN_CLICKED(IDC_BTN_GET_COMBOBOX_VALUE, &CMyDialog::OnBtnGetComboBoxValue)
END_MESSAGE_MAP()
在这个示例中,我们创建了一个下拉框控件ID为IDC_COMBO1,并将它与成员变量m_ComboBox关联起来。在按钮的点击事件处理函数OnBtnGetComboBoxValue中,我们通过调用m_ComboBox的GetCurSel函数获取当前选择项的索引,再通过调用GetLBText函数获取对应索引的文本值。最后,我们可以对获取的下拉框值进行处理。