Điều khiển tĩnh hiển thị chuỗi văn bản, hộp, hình chữ nhật, biểu tượng, con trỏ, bitmap hoặc siêu tệp nâng cao. Nó được đại diện bởi lớp CStatic . Nó có thể được sử dụng để dán nhãn, đóng hộp hoặc tách biệt các điều khiển khác. Một điều khiển tĩnh thường không có đầu vào và không cung cấp đầu ra.
Đây là danh sách các phương thức trong lớp CStatic –
Sơ Không. | Tên & Mô tả |
1 | Tạo ra Tạo điều khiển tĩnh Windows và gắn nó vào đối tượng CStatic. |
2 | DrawItem Ghi đè để vẽ điều khiển tĩnh do chủ sở hữu vẽ. |
3 | NhậnBitmap Truy xuất phần điều khiển của bitmap đã đặt trước đó với SetBitmap. |
4 | Nhận con trỏ Truy xuất phần điều khiển của hình ảnh con trỏ đã đặt trước đó bằng SetCursor. |
5 | GetEnhMetaFile Truy xuất phần điều khiển của siêu tệp nâng cao đã đặt trước đó với SetEnhMetaFile. |
6 | Nhận biểu tượng Truy xuất tay cầm của biểu tượng đã đặt trước đó với SetIcon. |
7 | ĐặtBitmap Chỉ định một bitmap sẽ được hiển thị trong điều khiển tĩnh. |
số 8 | Đặt con trỏ Chỉ định hình ảnh con trỏ sẽ được hiển thị trong điều khiển tĩnh. |
9 | SetEnhMetaFile Chỉ định siêu tệp nâng cao sẽ được hiển thị trong điều khiển tĩnh. |
10 | SetEnhMetaFile Chỉ định một biểu tượng sẽ được hiển thị trong điều khiển tĩnh. |
Chúng ta hãy xem xét một ví dụ đơn giản về Văn bản tĩnh.
Bước 1 – Kéo một điều khiển Văn bản tĩnh từ Hộp công cụ.
Bước 2 – Thay đổi Chú thích thành Điều khiển Văn bản Tĩnh và chạy ứng dụng của bạn, bạn sẽ thấy hộp thoại sau, hộp thoại này hiện cũng chứa điều khiển Văn bản tĩnh.
MFC – Hộp Danh Sách
Hộp danh sách hiển thị danh sách các mục, chẳng hạn như tên tệp, mà người dùng có thể xem và chọn. Một hộp Danh sách được đại diện bởi lớp CListBox . Trong hộp danh sách lựa chọn đơn, người dùng chỉ có thể chọn một mục. Trong hộp danh sách nhiều lựa chọn, có thể chọn nhiều mục. Khi người dùng chọn một mục, mục đó sẽ được tô sáng và hộp danh sách sẽ gửi thông báo thông báo đến cửa sổ chính.
Đây là danh sách các phương thức trong lớp CListBox. Dưới đây là một số mục ánh xạ cho Listbox
Thông điệp | nhập bản đồ | Sự mô tả |
LBN_DBLCLK | ON_LBN_DBLCLK( <id>, <thành viênFxn> ) | Khung gọi hàm thành viên này khi mục danh sách được nhấp đúp. |
LBN_KILLFOCUS | ON_LBN_KILLFOCUS( <id>, <thành viênFxn> ) | Khung gọi hàm thành viên này ngay lập tức trước khi mất tiêu điểm đầu vào. |
LBN_SELCHANGE | ON_LBN_SELCHANGE( <id>, <thành viênFxn> ) | Khung gọi hàm thành viên này khi lựa chọn được thay đổi. |
LBN_SETFOCUS | ON_LBN_SETFOCUS( <id>, <thành viênFxn> ) | Khung gọi hàm thành viên này sau khi đạt được tiêu điểm đầu vào. |
Chúng ta hãy xem xét một ví dụ đơn giản về Hộp danh sách 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 – Sau khi dự án được tạo, bạn sẽ thấy dòng TODO là Chú thích của Kiểm soát văn bản. Xóa Chú thích và đặt ID của nó thành IDC_STATIC_TXT.
Bước 2 – Kéo Hộp danh sách từ Hộp công cụ.
Bước 3 – Thêm biến điều khiển cho điều khiển Văn bản.
Bước 4 – Thêm biến Giá trị cho điều khiển Văn bản.
Bước 5 – Thêm biến điều khiển cho điều khiển Hộp danh sách.
Bước 6 – Thêm trình xử lý sự kiện cho điều khiển Hộp danh sách.
Bước 7 – Chọn LBN_SELCHANGE từ loại thông báo và nhập tên cho trình xử lý sự kiện.
Bước 8 – Thêm một chức năng sẽ tải hộp danh sách.
void CMFCListBoxDlg::LoadListBox() {
CString str = _T("");
for (int i = 0; i<10; i++) {
str.Format(_T("Item %d"), i);
m_listBox.AddString(str);
}
}
Bước 9 – Gọi hàm từ CMFCListBoxDlg::OnInitDialog() như trong đoạn mã sau.
BOOL CMFCListBoxDlg::OnInitDialog() {
CDialogEx::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
LoadListBox();
return TRUE; // return TRUE unless you set the focus to a control
}
Bước 10 – Đây là triển khai trình xử lý sự kiện. Thao tác này sẽ hiển thị mục được chọn hiện tại từ Hộp danh sách.
void CMFCListBoxDlg::OnLbnSelchangeList1() {
// TODO: Add your control notification handler code here
m_listBox.GetText(m_listBox.GetCurSel(),m_strItemSelected);
UpdateData(FALSE);
}
Bước 11 – 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 12 – Khi bạn chọn bất kỳ mục nào, mục đó sẽ được hiển thị trên Điều khiển văn bản