Bộ hẹn giờ là một đối tượng phi không gian sử dụng các khoảng thời gian định kỳ từ máy tính hoặc từ ứng dụng của bạn. Để hoạt động, cứ sau một khoảng thời gian, bộ điều khiển sẽ gửi một thông báo đến hệ điều hành. Không giống như hầu hết các điều khiển khác, bộ đếm thời gian MFC không có nút để đại diện cho nó cũng như không có lớp. Để tạo bộ đếm thời gian, bạn chỉ cần gọi phương thức CWnd::SetTimer(). Cuộc gọi chức năng này tạo bộ đếm thời gian cho ứng dụng của bạn. Giống như các điều khiển khác, bộ hẹn giờ sử dụng mã định danh.
Hãy để chúng tôi tạo một ứng dụng dựa trên hộp thoại MFC mới.
Bước 1 – Xóa Chú thích và đặt ID của nó thành IDC_STATIC_TXT
Bước 2 – Thêm biến giá trị cho điều khiển văn bản.
Bước 3 – Chuyển đến chế độ xem lớp trong giải pháp.
Bước 4 – Nhấp vào lớp CMFCTimeDlg.
Bước 5 – Trong cửa sổ Thuộc tính, nhấp vào nút Tin nhắn.
Bước 6 – Nhấp vào trường WM_TIMER và nhấp vào mũi tên của hộp tổ hợp. Lựa chọnOnTimer và triển khai sự kiện.
void CMFCTimerDlg::OnTimer(UINT_PTR nIDEvent) {
// TODO: Add your message handler code here and/or call default
CTime CurrentTime = CTime::GetCurrentTime();
int iHours = CurrentTime.GetHour();
int iMinutes = CurrentTime.GetMinute();
int iSeconds = CurrentTime.GetSecond();
CString strHours, strMinutes, strSeconds;
if (iHours < 10)
strHours.Format(_T("0%d"), iHours);
else
strHours.Format(_T("%d"), iHours);
if (iMinutes < 10)
strMinutes.Format(_T("0%d"), iMinutes);
else
strMinutes.Format(_T("%d"), iMinutes);
if (iSeconds < 10)
strSeconds.Format(_T("0%d"), iSeconds);
else
strSeconds.Format(_T("%d"), iSeconds);
m_strTimer.Format(_T("%s:%s:%s"), strHours, strMinutes, strSeconds);
UpdateData(FALSE);
CDialogEx::OnTimer(nIDEvent);
}
Bước 7 – Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ thấy đầu ra sau.
MFC – Bộ chọn ngày & giờ
Kiểm soát bộ chọn ngày và giờ ( CDateTimeCtrl ) triển khai phương pháp nhập hoặc chọn một ngày cụ thể một cách trực quan và dễ nhận biết. Giao diện chính của điều khiển có chức năng tương tự như hộp tổ hợp. Tuy nhiên, nếu người dùng mở rộng điều khiển, điều khiển lịch tháng sẽ xuất hiện (theo mặc định), cho phép người dùng chỉ định một ngày cụ thể. Khi một ngày được chọn, điều khiển lịch tháng sẽ tự động biến mất.
Đây là danh sách các phương thức trong lớp CDateTimeCtrl.
Chúng ta hãy xem xét một ví dụ đơn giản bằng cách tạo một ứng dụng MFC mới.
Bước 1 – Xóa Chú thích và đặt ID của nó thành IDC_STATIC_TXT.
Bước 2 – Thêm biến giá trị cho điều khiển văn bản.
Bước 3 – Kéo điều khiển Bộ chọn ngày giờ.
Bước 4 – Thêm biến kiểm soát cho Bộ chọn ngày giờ.
Bước 5 – Thêm trình xử lý Sự kiện cho Bộ chọn Ngày Giờ.
Bước 6 – Đây là triển khai trình xử lý sự kiện.
void CMFCDateAndTimePickerDlg::OnDtnDatetimechangeDatetimepicker1(NMHDR *pNMHDR, LRESULT *pResult){
LPNMDATETIMECHANGE pDTChange = reinterpret_cast <LPNMDATETIMECHANGE>(pNMHDR);
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_DATETIMEPICKER1, m_strValue);
UpdateData(FALSE);
*pResult = 0;
}
Bước 7 – Khi bạn chạy ứng dụng trên, bạn sẽ thấy đầu ra sau. Chọn bất kỳ ngày nào, nó sẽ hiển thị trên Điều khiển văn bản tĩnh.
MFC – Tranh
Nếu bạn cần hiển thị ảnh cho ứng dụng của mình, Visual C++ cung cấp một điều khiển đặc biệt cho mục đích đó.
Chúng ta hãy xem xét một ví dụ đơn giản 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 – Nhấp chuột phải vào hộp thoại trong cửa sổ thiết kế và chọn Chèn Điều khiển ActiveX.
Bước 2 – Chọn Microsoft Picture Click Control và nhấp vào OK.
Bước 3 – Thay đổi kích thước Picture control và trong cửa sổ Properties, nhấp vào trường Picture.
Bước 4 – Duyệt thư mục chứa Ảnh. Chọn bất kỳ hình ảnh.
Bước 5 – Chạy ứng dụng này và bạn sẽ thấy đầu ra sau.