Hộp tổ hợp bao gồm hộp danh sách kết hợp với điều khiển tĩnh hoặc điều khiển chỉnh sửa. nó được đại diện bởi lớp CComboBox . Phần hộp danh sách của điều khiển có thể được hiển thị mọi lúc hoặc chỉ có thể thả xuống khi người dùng chọn mũi tên thả xuống bên cạnh điều khiển.
Đây là danh sách các phương thức của lớp CComboBox. Đây là danh sách ánh xạ thông báo cho điều khiển Combobox
Thông điệp | nhập bản đồ | Sự mô tả |
CBN_DBLCLK | ON_CBN_DBLCLK( <id>, <thành viênFxn> ) | Người dùng bấm đúp vào một chuỗi trong hộp danh sách của hộp tổ hợp. |
CBN_DROPDOWN | ON_CBN_DROPDOWN( <id>, <thành viênFxn> ) | Hộp danh sách của hộp tổ hợp sắp được thả xuống (được hiển thị). |
CBN_EDITCHANGE | ON_CBN_EDITCHANGE( <id>, <thành viênFxn> ) | Người dùng đã thực hiện một hành động có thể đã thay đổi văn bản trong phần điều khiển chỉnh sửa của hộp tổ hợp. |
CBN_EDITUPDATE | ON_CBN_EDITUPDATE( <id>, <thành viênFxn> ) | Phần kiểm soát chỉnh sửa của hộp tổ hợp sắp hiển thị văn bản đã thay đổi. |
CBN_KILLFOCUS | ON_CBN_KILLFOCUS( <id>, <thành viênFxn> ) | Hộp tổ hợp đang mất tiêu điểm đầu vào. |
CBN_SELCHANGE | ON_CBN_SELCHANGE( <id>, <thành viênFxn> ) | Lựa chọn trong hộp danh sách của hộp tổ hợp sắp được thay đổi do người dùng bấm vào hộp danh sách hoặc thay đổi lựa chọn bằng cách sử dụng các phím mũi tên. |
CBN_SETFOCUS | ON_CBN_SETFOCUS( <id>, <thành viênFxn> ) | Hộp tổ hợp nhận tiêu điểm đầu vào. |
Chúng ta hãy xem xét một ví dụ về nút Radio bằng cách tạo một ứng dụng dựa trên hộp thoại MFC mới.
Bước 1 – Kéo Hộp tổ hợp và xóa điều khiển Chú thích của Văn bản tĩnh.
Bước 2 – Thêm biến điều khiển m_comboBoxCtrl cho hộp tổ hợp và biến giá trị m_strTextCtrl cho điều khiển Văn bản tĩnh.
Bước 3 – Thêm trình xử lý sự kiện để thay đổi lựa chọn của hộp tổ hợp.
Bước 4 – Thêm mã sau vào OnInitDialog() để tải hộp tổ hợp.
for (int i = 0; i<10; i++) {
str.Format(_T("Item %d"), i);
m_comboBoxCtrl.AddString(str);
}
Bước 5 – Đây là triển khai trình xử lý sự kiện.
void CMFCComboBoxDlg::OnCbnSelchangeCombo1() {
// TODO: Add your control notification handler code here
m_comboBoxCtrl.GetLBText(m_comboBoxCtrl.GetCurSel(), m_strTextCtrl);
UpdateData(FALSE);
}
Bước 6 – Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ thấy đầu ra sau.
Bước 7 – Khi bạn chọn bất kỳ mục nào thì mục đó sẽ được hiển thị trên Điều khiển văn bản.
MFC – Nút radio
Nút radio là một điều khiển xuất hiện dưới dạng một dấu chấm được bao quanh bởi một hộp tròn. Trong thực tế, một nút radio đi kèm với một hoặc nhiều nút radio khác xuất hiện và hoạt động như một nhóm.
Đây là danh sách các phương thức trong lớp Radio Button .
Đây là danh sách ánh xạ thông báo cho điều khiển Nút Radio –
Thông điệp | nhập bản đồ | Sự mô tả |
BN_CLICKED | ON_BN_CLICKED( <id>, <thành viênFxn> ) | Khung gọi chức năng thành viên này khi được nhấp vào nút. |
BN_DISABLE | ON_BN_DISABLE( <id>, <thành viênFxn> ) | Khung gọi chức năng thành viên này khi nút bị tắt. |
BN_DOUBLECLICKED | ON_BN_DOUBLECLICKED( <id>, <thành viênFxn> ) | Khung gọi chức năng thành viên này khi nút được nhấp đúp. |
BN_PAINT | ON_BN_PAINT( <id>, <thành viênFxn> ) | Khung gọi chức năng thành viên này khi một ứng dụng đưa ra yêu cầu sơn lại một nút. |
Chúng ta hãy xem xét một ví dụ về nút Radio bằng cách tạo một ứng dụng dựa trên hộp thoại MFC mới.
Bước 1 – Kéo hộp nhóm và ba nút radio và xóa điều khiển Chú thích của văn bản tĩnh.
Bước 2 – Thêm trình xử lý sự kiện cho cả ba nút radio.
Bước 3 – Thêm biến Giá trị cho điều khiển Văn bản tĩnh.
Bước 4 – Đây là cách triển khai ba trình xử lý sự kiện.
void CMFCRadioButtonDlg::OnBnClickedRadio1() {
// TODO: Add your control notification handler code here
m_strTextControl = _T("Radio Button 1 Clicked");
UpdateData(FALSE);
}
void CMFCRadioButtonDlg::OnBnClickedRadio2() {
// TODO: Add your control notification handler code here
m_strTextControl = _T("Radio Button 2 Clicked");
UpdateData(FALSE);
}
void CMFCRadioButtonDlg::OnBnClickedRadio3() {
// TODO: Add your control notification handler code here
m_strTextControl = _T("Radio Button 3 Clicked");
UpdateData(FALSE);
}
Bước 5 – Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ thấy đầu ra sau. Khi bạn chọn bất kỳ nút radio nào, thông báo sẽ được hiển thị trên điều khiển Văn bản tĩnh.