
- MFC 教程
- MFC - 首頁
- MFC - 概述
- MFC - 環境設定
- MFC - VC++ 專案
- MFC - 入門
- MFC - Windows 基礎
- MFC - 對話方塊
- MFC - Windows 資源
- MFC - 屬性表
- MFC - Windows 佈局
- MFC - 控制元件管理
- MFC - Windows 控制元件
- MFC - 訊息與事件
- MFC - ActiveX 控制元件
- MFC - 檔案系統
- MFC - 標準 I/O
- MFC - 文件檢視
- MFC - 字串
- MFC - CArray
- MFC - 連結串列
- MFC - 資料庫類
- MFC - 序列化
- MFC - 多執行緒
- MFC - 網際網路程式設計
- MFC - GDI
- MFC - 庫
- MFC 有用資源
- MFC - 快速指南
- MFC - 有用資源
- MFC - 討論
MFC - 組合框
一個組合框由一個列表框和一個靜態控制元件或編輯控制元件組合而成。它由CComboBox類表示。控制元件的列表框部分可以始終顯示,也可以只在使用者選擇控制元件旁邊的下拉箭頭時下拉顯示。
以下是組合框控制元件的訊息對映列表:
訊息 | 對映項 | 描述 |
---|---|---|
CBN_DBLCLK | ON_CBN_DBLCLK( <id>, <memberFxn> ) | 使用者雙擊組合框列表框中的字串。 |
CBN_DROPDOWN | ON_CBN_DROPDOWN( <id>, <memberFxn> ) | 組合框的列表框即將下拉(變得可見)。 |
CBN_EDITCHANGE | ON_CBN_EDITCHANGE( <id>, <memberFxn> ) | 使用者執行了可能已更改組合框編輯控制元件部分文字的操作。 |
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 - 拖動一個組合框並移除靜態文字控制元件的標題。

步驟 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 - 當編譯並執行上述程式碼時,您將看到以下輸出。

步驟 7 - 當您選擇任何專案時,它將顯示在文字控制元件上。
mfc_windows_controls.htm
廣告