Điều khiển Windows là các đối tượng mà người dùng có thể tương tác để nhập hoặc thao tác dữ liệu. Chúng thường xuất hiện trong hộp thoại hoặc trên thanh công cụ. Có nhiều loại điều khiển khác nhau –
- Điều khiển dựa trên văn bản được sử dụng để hiển thị văn bản cho người dùng hoặc yêu cầu văn bản từ người dùng.
- Điều khiển dựa trên danh sách hiển thị danh sách các mục.
- Kiểm soát dựa trên tiến trình được sử dụng để hiển thị tiến trình của một hành động.
- Một điều khiển tĩnh có thể được sử dụng để hiển thị màu sắc, hình ảnh hoặc thứ gì đó không thường xuyên phù hợp với các danh mục trên.
MFC – Kiểm Soát Tĩnh
Điều khiển tĩnh là một đối tượng hiển thị thông tin cho người dùng mà không cần sự can thiệp trực tiếp của họ. Nó có thể được sử dụng để hiển thị màu sắc, hình dạng hình học hoặc hình ảnh chẳng hạn như biểu tượng, ảnh bitmap hoặc hoạt ảnh. Sau đây là các điều khiển tĩnh –
- Văn bản tĩnh
- Kiểm soát hình ảnh
- hộp nhóm
MFC – Điều khiển Hoạt hình
Điều khiển hoạt hình là cửa sổ hiển thị clip Âm thanh ở định dạng AVI. Một clip AVI là một loạt các khung hình bitmap, giống như một bộ phim. Điều khiển hoạt hình chỉ có thể phát các clip AVI đơn giản và chúng không hỗ trợ âm thanh. Nó được đại diện bởi lớp CAnimateCtrl . Sau đây là danh sách các phương thức trong lớp CAnimateCtrl
Sơ Không. | Phương pháp & Mô tả |
1 | Đóng Đóng clip AVI. |
2 | Tạo ra Tạo điều khiển hoạt hình và gắn nó vào đối tượng CAnimateCtrl. |
3 | TạoEx Tạo một điều khiển hoạt ảnh với các kiểu mở rộng của Windows đã chỉ định và gắn nó vào một đối tượng CAnimateCtrl. |
4 | Đang chơi Cho biết clip Audio-Video Interleaved (AVI) có đang phát hay không. |
5 | Mở Mở một clip AVI từ một tệp hoặc tài nguyên và hiển thị khung hình đầu tiên. |
6 | Chơi Phát clip AVI không có âm thanh. |
7 | Tìm kiếm Hiển thị một khung hình đơn đã chọn của clip AVI. |
8 | Dừng lại Dừng phát clip AVI. |
Đây là danh sách ánh xạ thông báo để điều khiển hoạt ảnh –
Thông điệp | nhập bản đồ | Sự mô tả |
ACN_START | ON_ACN_START ( <id>, <thành viênFxn>) | Khung gọi hàm thành viên này khi hoạt ảnh đang được bắt đầu. |
ACN_STOP | ON_ACN_STOP ( <id>, <thành viênFxn>) | Khung gọi hàm thành viên này khi dừng hoạt ảnh. |
Chúng ta hãy xem xét một ví dụ đơn giản về điều khiển hoạt hình.
Bước 1 – Tạo một dự án dựa trên hộp thoại MFC mới.
Bước 2 – Sau khi dự án được tạo, hãy xóa dòng TODO và nhấp vào Điều khiển hoạt hình trong Hộp công cụ và vẽ một hình chữ nhật như trong ảnh chụp nhanh sau đây.
Bước 3 – Để thêm biến điều khiển cho điều khiển hoạt ảnh, nhấp chuột phải và chọn Thêm biến.
Bước 4 – Nhập tên biến và loại biến, là CAnimateCtrl cho hoạt ảnh.
Bước 5 – Sử dụng cửa sổ Thuộc tính, đặt giá trị Đường viền thành Sai, Đặt Tự động phát, Trung tâm và các giá trị trong suốt thành True.
Bước 6 – Ở đây chúng ta có tệp *.avi trong thư mục res , đây là thư mục mặc định cho mọi tài nguyên được sử dụng trong dự án.
Bước 7 – Để bắt đầu hoạt ảnh, chúng ta cần gọi lớp CAnimateCtrl của phương thức Open . Thêm dòng mã sau vào CMFCAnimationDemoDlg::OnInitDialog()
m_animationCtrl.Open(L”res\\copyfile.avi”);
Bước 8 – Đây là triển khai hoàn chỉnh của CMFCAnimationDemoDlg::OnInitDialog()
BOOL CMFCAnimationDemoDlg::OnInitDialog(){
CDialogEx::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL){
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty()){
pSysMenu -> AppendMenu(MF_SEPARATOR);
pSysMenu -> AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 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
m_animationCtrl.Open(L"res\\copyfile.avi");
return TRUE; // return TRUE unless you set the focus to a control
}
Bước 9 – Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ thấy đầu ra sau.
MFC – Nút
Nút là một đối tượng mà người dùng nhấp vào để bắt đầu một hành động. Điều khiển nút được đại diện bởi lớp CButton .
Đây là danh sách các phương thức trong lớp CButton.
Đây là danh sách ánh xạ thông báo cho Điều khiển nút –
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 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ụ đơn giản bằng cách kéo hai nút từ Hộp công cụ.
Bước 1 – Thay đổi Chú thích từ Bắt đầu, Dừng và ID thành IDC_BUTTON_START, IDC_BUTTON_STOP cho cả hai nút.
Bước 2 – Hãy để chúng tôi thêm trình xử lý sự kiện cho cả hai nút.
Bước 3 – Đây là cách triển khai cả hai sự kiện mà chúng tôi sẽ bắt đầu và dừng hoạt ảnh.
void CMFCAnimationDemoDlg::OnBnClickedButtonStart() {
// TODO: Add your control notification handler code here
m_animationCtrl.Open(L"res\\copyfile.avi");
}
void CMFCAnimationDemoDlg::OnBnClickedButtonStop() {
// TODO: Add your control notification handler code here
m_animationCtrl.Stop();
}
Bước 4 – 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 5 – Khi bạn nhấp vào nút Dừng, hoạt ảnh dừng lại và khi bạn nhấn nút Bắt đầu, hoạt ảnh sẽ bắt đầu lại.