组合框由与静态控件或编辑控件组合的列表框组成,控件的列表框部分可能始终显示,或者仅在用户选择控件旁边的下拉箭头时才下拉。
这是Combobox控件的消息映射列表-
Message | Map entry | 描述 |
---|---|---|
CBN_DBLCLK | ON_CBN_DBLCLK( <id>, <memberFxn> ) | 用户在组合框的列表框中双击一个字符串。 |
CBN_DROPDOWN | ON_CBN_DROPDOWN( <id>, <memberFxn> ) | 组合框的列表框即将下拉(使其可见)。 |
CBN_EDITCHANGE | ON_CBN_EDITCHANGE( <id>, <memberFxn> ) | 用户采取了可能已更改组合框的editcontrol部分中的文本的操作。 |
CBN_EDITUPDATE | ON_CBN_EDITUPDATE( <id>, <memberFxn> ) | 组合框的编辑控件部分将显示更改的文本。 |
CBN_KILLFOCUS | ON_CBN_KILLFOCUS( <id>, <memberFxn> ) | 组合框正在失去输入焦点。 |
CBN_SELCHANGE | ON_CBN_SELCHANGE( <id>, <memberFxn> ) | 由于用户单击列表框或使用箭头键更改选择,结果将更改组合框列表框中的选择。 |
CBN_SETFOCUS | ON_CBN_SETFOCUS( <id>, <memberFxn> ) | 组合框接收输入焦点。 |
让无涯教程通过创建一个新的基于MFC对话框的应用程序来研究单选按钮的示例。
步骤1 - 拖动一个组合框,然后删除"Static Text control"。
步骤2 - 为组合框添加控件变量m_comboBoxCtrl,为静态文本控件添加值变量m_strTextCtrl。
步骤3 - 添加事件处理程序以更改组合框的选择。
步骤4 - 在OnInitDialog()中添加以下代码以加载组合框。
for (int i = 0; i<10; i++) { str.Format(_T("Item %d"), i); m_comboBoxCtrl.AddString(str); }
步骤5 - 这是事件处理程序的实现。
void CMFCComboBoxDlg::OnCbnSelchangeCombo1() { //TODO: Add your control notification handler code here m_comboBoxCtrl.GetLBText(m_comboBoxCtrl.GetCurSel(), m_strTextCtrl); UpdateData(FALSE); }
步骤6 - 编译并执行上述代码后,您将看到以下输出。
参考链接
https://www.learnfk.com/mfc/mfc-combo-boxes.html
标签:控件,列表框,MFC,组合,更改,步骤,CBN,无涯,Boxes From: https://blog.51cto.com/u_14033984/8777739