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函數獲取對應索引的文本值。最后,我們可以對獲取的下拉框值進行處理。