在類別向導為 ComboBox 控制項(IDC_COMBO1)新增 CBN_SELCHANGE 通知訊息處理函數 OnCbnSelchangeCombo1()。
void CMyDialog::OnCbnSelchangeCombo1()
{
CComboBox* pCombo = (CComboBox*)GetDlgItem(IDC_COMBO1);
int nSel = pCombo->GetCurSel();
if (nSel != CB_ERR) {
CString strText;
pCombo->GetLBText(nSel, strText);
AfxMessageBox(_T("您點選了:") + strText);
// 或根據文字執行對應邏輯
if (strText == _T("a")) { /* ... */ }
}
}
void CMyDialog::OnBnClickedBtnAdd()
{
UpdateData(TRUE); // 將編輯框資料同步到成員變數
CComboBox* pCombo = (CComboBox*)GetDlgItem(IDC_COMBO1);
pCombo->AddString(m_strEdit1); // m_strEdit1 為編輯框 DDX 變數
pCombo->AddString(m_strEdit2);
pCombo->AddString(m_strEdit3);
pCombo->AddString(m_strEdit4);
UpdateData(FALSE);
}
| 函數 | 用途 |
|---|---|
GetCurSel() | 取得目前選中索引(0 基底),無選擇傳回 CB_ERR |
GetLBText(index, CString&) | 取得指定索引的項目文字 |
AddString(LPCTSTR) | 在下拉清單末尾新增項目 |
InsertString(index, LPCTSTR) | 在指定位置插入 |
DeleteString(index) | 刪除指定項目 |
ResetContent() | 清空所有項目 |
MFC ComboBox 點選項目回應:處理 CBN_SELCHANGE,用 GetCurSel 取索引,GetLBText 取文字,再依業務邏輯分派。動態新增用 AddString。