3. Dự án (Project ) DPW 2 )-
4.11. Hộp ngày giờ-Date Time Picker (COleDateTime, CTime)
Giới thiệu-
Introduction - Là một công cụ hiển thị thời gian và lịch hiện hành. Nó cho ta biết được thời gian, ngày, tháng, năm hiện hành.
Thiết kế-Design Tạo-Create
Vẽ-Draw
- Click chọn nút Date Time Picker trên thanh công cụ Điều khiển.
- Khi đó biểu tượng con trỏ chuột là > Click chọn trên Hộp thoại-Dialog để có hộp ngày giờ là .
Viết mã- Coding
Gán Thuộc tính- Assign Properties
Thiết kế- Design
- Click chuột phải lên hộp ngày giờ trên Hộp thoại-Dialog > chọn Properties. - Sau đó xuất hiện hộp thoại Date Time PickerProperties của hộp ngày giờ như hình sau:
+ Nhập tên định danh của hộp ngày giờ ở hộp . VD:
IDC_DATETIME_HOADON.
+ Bỏ chọn hộp nếu muốn ẩn hộp ngày giờ.
+ Chọn hộp nếu muốn vô hiệu hóa hộp ngày giờ. - Rồi ấn phím Enter.
- Ấn phím ESC để hủy bỏ gán thuộc tính.
Viết mã- Coding
Lập trình-Progarmming Khai báo biến-
Variable Declaration - Click chuột phải lên hộp ngày giờ trên Hộp thoại-Dialog > chọn ClassWizard.
- Chọn tên định danh của hộp ngày giờ ở khung Control IDs > chọn nút > xuất hiện hộp thoại Add Member Variable như hình sau:
+ Nhập tên biến hay tên đối tượng vào hộp . VD:
m_datetime_hoadon.
+ Nếu chọn là biến ở hộp , thì chọn kiểu dữ liệu ở hộp .
Kiểu Giải nghĩa
CTime Kiểu Giờ COleDateTime Kiểu Ngày Giờ
+ Nếu chọn là đối tượng ở hộp , thì chọn lớp ở hộp .
Kiểu Giải nghĩa
COleDateTimeCtrl Lớp Ngày giờ
- Chọn nút để xóa biến hay xóa đối tượng.
Chèn Thông điệp-
- Chọn tên định danh của hộp ngày giờ ở khung Object IDs > chọn thông điệp ở khung
Messages:
Thông điệp Ý nghĩa sự kiện
DTN_CLOSEUP DTN_DATETIMECHANGE DTN_DROPDOWN Nhấp đúp chuột DTN_FORMAT DTN_FORMATQUERY DTN_USERSTRING DTN_WMKEYDOWN DTN_KILLFOCUS DTN_SETFOCUS
- Chọn nút > sau đó xuất hiện hộp thoại Add Member Fucntion như hình sau:
+ Đặt tên hàm cho hộp nhập liệu ở hộp . Các trường hợp đặt tên hàm:
Thông điệp Tên hàm Ví dụ
- Chọn nút để xóa hàm.
- Chọn nút để viết mã lệnh trong hàm như sau: void CTen_Ung_DungDlg::On()
{
// TODO: Add your control notification handler code here }
Viết mã-Coding Lập trình-
Progarmming - Hàm static COleDateTime WINAPI GetCurrentTime( ) throw( );COleDateTime():Trả về ngày, giờ của hệ thống. - Ví dụ-Example: COleDateTimeSpan mSpan; COleDateTime d; UpdateData(TRUE); mSpan=m_edit; d=m_picker1+mSpan; m_static_date=d.Format("%d/%m/%y"); UpdateData(FALSE);
- Khi ta trừ hai dữ liệu thuộc kiểu ngày (COleDateTime), kết quả của phép toán là một đối tượng thuộc lớp COleDateTimeSpan.
- Ví dụ-Example:
COleDateTimeSpan d; CString s;
d=m_picker1-m_picker2; s.Format("%d",d.GetDays()); m_static_date2=s;
UpdateData(FALSE);