[VC++ 6.0 MFC] Hướng dẫn tạo đồng hồ chạy ngược
Số trang: 5
Loại file: pdf
Dung lượng: 117.79 KB
Lượt xem: 18
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Thư viện các class MFC của VC++ không có sẵn class Timer chuyên quản lý thời gian, tuy nhiên 2 class CWindow và CWnd (cùng các class con của chúng như CDialog) có method SetTimer(), đây là sự bao đóng của hàm API Windows cùng tên, nó cho phép tạo 1 timer luận lý với thời gian đếm xác định, mỗi lần timer đếm hết, nó tạo 1 thông báo tên là WM_TIMER gửi về cho cửa sổ ứng dụng xử lý. Để thấy rõ việc dùng method Timer giải quyết bài toán cụ thể của bạn, chúng tôi có...
Nội dung trích xuất từ tài liệu:
[VC++ 6.0 MFC] Hướng dẫn tạo đồng hồ chạy ngược [VC++ 6.0 MFC] Hướng dẫn tạo đồng hồ chạy ngượcThư viện các class MFC của VC++ không có sẵn class Timer chuy ên quản lýthời gian, tuy nhiên 2 class CWindow và CWnd (cùng các class con c ủa chúngnhư CDialog) có method SetTimer(), đây là s ự bao đóng của hàm APIWindows cùng tên, nó cho phép t ạo 1 timer luận lý với thời gian đếm xác định,mỗi lần timer đếm hết, nó tạo 1 thông báo tên là WM_TIMER gửi về cho cửasổ ứng dụng xử lý. Để thấy rõ việc dùng method Timer giải quyết bài toán cụthể của bạn, chúng tôi c ó viết 1 ứng dụng nhỏ demo đồng hồ chạy ng ược bằngVC++. Qui trình xây d ựng ứng dụng cụ thể như sau:1. chạy VC++, chọn menu File.New để hiển thị cửa sổ New. Chọn ProjectMFC ClassWizard (exe), ch ọn vị trí thư mục chứa Project, nhập tên Project làDispTimer rồi OK để bắt đầu qui trình wizard.2. Ở cửa sổ Step 1, bạn chọn mục Dialog Based rồi chọn button Finish đểhoàn tất qui trình wizard tạo ứng dụng dùng giao diện Form (dialog - hộpthoại).3. Khi cửa sổ thiết kế Form ứng dụng hiển thị, bạn thiết kế Form có dạng sau:Form gồm 1 label để hiển thị giá trị giờ v à 2 button có sẵn là OK và Cancel đểdừng phần mềm khi cần.4. Chọn menu View.ClassWizard, chọn class làm việc là CDispTimerDlg,chọn tag Member Variables và định nghĩa biến kết hợp với đối tượng labelvới tên là m_timer (kiểu CString). Trong lập trình, bạn sẽ truy xuất đối t ượnglabel thông qua bi ến m_timer.5. Cũng trong cửa sổ ClassWizard, chọn tag Message maps, chọn Object IDlà CDispTimerDlg, duyệt tìm và chọn hàm WindowProc(), nhấn button AddFunction để tạo hàm xử lý sự kiện cho Form giao diện rồi viết code cho hàmnày như sau:LRESULT CDispTimerDlg::WindowProc(UINT message, WPARAMwParam, LPARAM lParam) {// TODO: Add your specialized code here and/or call the base classchar buf[256];switch (message){case WM_TIMER :if (giay != 0) giay--;else {// nếu thành phần giây = 0giay = 59;if (phut !=0) phut --;else { // nếu thành phần phút = 0phut = 59;if (gio != 0) gio--;else {// hết giờgio = phut = giay = 0;}}}//hiển thị thời gian còn lại lên Label TimerUpdateData(TRUE);wsprintf(buf,%dh %dp %ds,gio,phut,giay);m_timer = buf;UpdateData(FALSE);//xóa TimerKillTimer(ID_TIMER);}return CDialog::WindowProc(message, wParam, lParam);}6. Hiển thị file DispTimerDlg.h (đặc tả interface sử dụng của class Form ứngdụng), thêm lệnh định nghĩa 3 thuộc tính lưu giữ giá trị thời gian vào vị tríthích hợp trong class:int gio, phut, giay;7. Hiển thị file DispTimerDlg.cpp (hiện thực class Form ứng dụng), th êm đoạnlệnh khởi động time r và giá trị bắt đầu vào cuối hàm OnInitDialog():#define ID_TIMER 55BOOL CDispTimerDlg::OnInitDialog(){...// TODO: Add extra initialization here// tạo timer đếm 1s = 1000msSetTimer(ID_TIMER,1000,NULL);// khởi động giá trị đầu của đồng hồgio = 10; phut = 20; giay = 30;//hiển thị đồng hồ lên Label Timerchar buf[256];UpdateData(TRUE);wsprintf(buf,%dh %dp %ds,gio,phut,giay);m_timer = buf;UpdateData(FALSE);return TRUE; // return TRUE unless you set the focus to a control}8. chọn menu Build.Execute DispTimer.exe để thử dịch và chạy ứng dụng, nếulàm đúng các bước trên đây, bạn sẽ thấy form hiển thị giờ giảm dần nh ư bạn cầu.yêuTheo Pcworld
Nội dung trích xuất từ tài liệu:
[VC++ 6.0 MFC] Hướng dẫn tạo đồng hồ chạy ngược [VC++ 6.0 MFC] Hướng dẫn tạo đồng hồ chạy ngượcThư viện các class MFC của VC++ không có sẵn class Timer chuy ên quản lýthời gian, tuy nhiên 2 class CWindow và CWnd (cùng các class con c ủa chúngnhư CDialog) có method SetTimer(), đây là s ự bao đóng của hàm APIWindows cùng tên, nó cho phép t ạo 1 timer luận lý với thời gian đếm xác định,mỗi lần timer đếm hết, nó tạo 1 thông báo tên là WM_TIMER gửi về cho cửasổ ứng dụng xử lý. Để thấy rõ việc dùng method Timer giải quyết bài toán cụthể của bạn, chúng tôi c ó viết 1 ứng dụng nhỏ demo đồng hồ chạy ng ược bằngVC++. Qui trình xây d ựng ứng dụng cụ thể như sau:1. chạy VC++, chọn menu File.New để hiển thị cửa sổ New. Chọn ProjectMFC ClassWizard (exe), ch ọn vị trí thư mục chứa Project, nhập tên Project làDispTimer rồi OK để bắt đầu qui trình wizard.2. Ở cửa sổ Step 1, bạn chọn mục Dialog Based rồi chọn button Finish đểhoàn tất qui trình wizard tạo ứng dụng dùng giao diện Form (dialog - hộpthoại).3. Khi cửa sổ thiết kế Form ứng dụng hiển thị, bạn thiết kế Form có dạng sau:Form gồm 1 label để hiển thị giá trị giờ v à 2 button có sẵn là OK và Cancel đểdừng phần mềm khi cần.4. Chọn menu View.ClassWizard, chọn class làm việc là CDispTimerDlg,chọn tag Member Variables và định nghĩa biến kết hợp với đối tượng labelvới tên là m_timer (kiểu CString). Trong lập trình, bạn sẽ truy xuất đối t ượnglabel thông qua bi ến m_timer.5. Cũng trong cửa sổ ClassWizard, chọn tag Message maps, chọn Object IDlà CDispTimerDlg, duyệt tìm và chọn hàm WindowProc(), nhấn button AddFunction để tạo hàm xử lý sự kiện cho Form giao diện rồi viết code cho hàmnày như sau:LRESULT CDispTimerDlg::WindowProc(UINT message, WPARAMwParam, LPARAM lParam) {// TODO: Add your specialized code here and/or call the base classchar buf[256];switch (message){case WM_TIMER :if (giay != 0) giay--;else {// nếu thành phần giây = 0giay = 59;if (phut !=0) phut --;else { // nếu thành phần phút = 0phut = 59;if (gio != 0) gio--;else {// hết giờgio = phut = giay = 0;}}}//hiển thị thời gian còn lại lên Label TimerUpdateData(TRUE);wsprintf(buf,%dh %dp %ds,gio,phut,giay);m_timer = buf;UpdateData(FALSE);//xóa TimerKillTimer(ID_TIMER);}return CDialog::WindowProc(message, wParam, lParam);}6. Hiển thị file DispTimerDlg.h (đặc tả interface sử dụng của class Form ứngdụng), thêm lệnh định nghĩa 3 thuộc tính lưu giữ giá trị thời gian vào vị tríthích hợp trong class:int gio, phut, giay;7. Hiển thị file DispTimerDlg.cpp (hiện thực class Form ứng dụng), th êm đoạnlệnh khởi động time r và giá trị bắt đầu vào cuối hàm OnInitDialog():#define ID_TIMER 55BOOL CDispTimerDlg::OnInitDialog(){...// TODO: Add extra initialization here// tạo timer đếm 1s = 1000msSetTimer(ID_TIMER,1000,NULL);// khởi động giá trị đầu của đồng hồgio = 10; phut = 20; giay = 30;//hiển thị đồng hồ lên Label Timerchar buf[256];UpdateData(TRUE);wsprintf(buf,%dh %dp %ds,gio,phut,giay);m_timer = buf;UpdateData(FALSE);return TRUE; // return TRUE unless you set the focus to a control}8. chọn menu Build.Execute DispTimer.exe để thử dịch và chạy ứng dụng, nếulàm đúng các bước trên đây, bạn sẽ thấy form hiển thị giờ giảm dần nh ư bạn cầu.yêuTheo Pcworld
Tìm kiếm theo từ khóa liên quan:
Javascript ASP.NET Tin học đại cương giáo trình Tin học đại cương bài giảng Tin học đại cương tài liệu Tin học đại cương lý thuyết Tin học đại cươngTài liệu có liên quan:
-
Ứng dụng công cụ Quizizz thiết kế trò chơi học tập trong giảng dạy học phần tin học đại cương
12 trang 310 0 0 -
Tài liệu hướng dẫn thực hành Tin học đại cương - ĐH Bách Khoa Hà Nội
40 trang 263 0 0 -
Giáo trình Tin học đại cương part 7
19 trang 254 0 0 -
Giáo trình Tin học đại cương: Phần 1 - ĐH Kinh tế Quốc Dân
130 trang 184 0 0 -
Giáo trình Tin học đại cương: Phần 2 - Trần Đình Khang
118 trang 159 0 0 -
Giáo trình Tin học đại cương (Tái bản năm 2020): Phần 1 - PGS.TS. Nguyễn Thị Thu Thủy (Chủ biên)
105 trang 148 0 0 -
Hướng dẫn thực hành lập trình C trên Visual Studio
9 trang 138 0 0 -
Giáo trình Tin học đại cương: Phần 1 - Vi Hồng Thắm
90 trang 136 0 0 -
Quản trị người dùng trong Exchange 2007 bằng Powershell
9 trang 112 0 0 -
GIÁO TRÌNH LẬP TRÌNH WEB_PHẦN 2_BÀI 3
3 trang 110 0 0