Hộp hội thoạ
9.7 KHAI THÁC CÁC TIỆN ÍCH HỖ TRỢ:
Ứng dụng phát triển trong VC có thể dễ dàng khai thác các tiện ích hỗ trợ bởi VC (VC Components) hoặc bởi các ứng dụng khác được cài đặt trong hệ thống (ActiveX Controls). Việc bổ sung và khai thác các tiện ích này trong ứng dụng được thực hiện thông qua các bước sau:
Mở dự án của ứng dụng trong VC. Đăng ký sử dụng tiện ích:
Chọn mục: Project / Add to Project / Components and Controls…
Hộp hội thoại 113
(Danh sách các tiện ích của MS Visual C++) • Chọn tiện ích:
Chọn mục thích hợp trong danh sách tiện ích chi tiết. Chọn Insert.
Chọn OK để khẳng định thao tác.
• Khai báo thông tin lớp đối tượng quản lý tiện ích bổ sung (nếu có). • Khai báo thông tin lớp đối tượng trong ứng dụng sử dụng tiện ích. Kết thúc quá trình bổ sung một tiện ích vào ứng dụng.
114 Lập trình Windows với MFC - Microsoft Visual C++ 6.0 - Lê Ngọc Thạnh - lntmail@yahoo.com
2 Thực hiện ứng dụng TipApp với giao diện chính là dialog. Mỗi khi thực hiện, ứng dụng hiển thị hộp thông báo "Tip of the Day".
Dùng MFC Wizard tạo dự án TipApp với giao diện chính là dialog. Đăng ký sử dụng tiện ích:
• Nhóm tiện ích = Visual C++ Components. • Tiện ích = Tip of the day
• Khai báo thông tin lớp đối tượng quản lý tiện ích:
Chọn OK, Chọn Close để đóng hộp hội thoại tiện ích.
• Với tiện ích "Tip of the Day", lớp đối tượng quản lý tiểu trình chính của ứng dụng là lớp sử dụng. Hai hành vi bổ sung tự động cho lớp: - void CTipAppApp::ShowTipAtStartup(void);
- void CTipAppApp::ShowTipOfTheDay(void);
Hành vi ShowTipAtStartup được thực hiện bởi hành vi InitInstance. ) Hãy thử quan sát các lớp của dự án TipApp để tự nhận xét. Biên dịch và chạy thử ứng dụng.
2 Thực hiện ứng dụng XemLich với giao diện chính là dialog. Bổ sung vào ứng dụng công cụ xem và chọn lịch Calendar 8 (ActiveX Control). Cài đặt control này lên dialog giao diện.
Dùng MFC Wizard tạo dự án XemLich với dialog giao diện chính. Đăng ký sử dụng tiện ích:
• Nhóm tiện ích = Registered ActiveX Controls. • Tiện ích = Calendar Control 8.0
Hộp hội thoại 115
• Khai báo thông tin lớp đối tượng quản lý tiện ích:
Chọn OK, Chọn Close để đóng hộp hội thoại tiện ích.
• Lớp đối tượng CXemLichDlg quản lý dialog giao diện chính của dự án làm nhiệm vụ sử dụng control bổ sung này:
- Mở resource dialog giao diện, cài đặt control sau:
- Hộp xem và chọn ngày CCalendar IDC_DATE - Tạo biến điều khiển m_Lich kiểu CCalendar cho control.
- Hành vi OnInitDialog của lớp đặt giá trị cho control: BOOL CXemLichDlg::OnInitDialog()
{ CDialog::OnInitDialog(); SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE); m_Lich.SetDay( 19 ); m_Lich.SetMonth( 11 ); m_Lich.SetYear( 2002 ); return TRUE; }
Có thể sử dụng các hành vi: GetDay, GetMonth, GetYear của đối tượng m_List để lấy thông tin về ngày được chọn.
Biên dịch và chạy thử ứng dụng.
116 Lập trình Windows với MFC - Microsoft Visual C++ 6.0 - Lê Ngọc Thạnh - lntmail@yahoo.com
THỰC HAØNH:
1. Như VD26, khi option dialog được thực hiện, hộp nhập của nó chứa sẵn thông tin là nội dung đã được nhập trên màn hình chính CEmpWnd.
HD: Hành vi OnInitDialog của COptionDlg thực hiện lấy thông tin từ thuộc tính m_editName của đối tượng CEmpWnd và gán cho hộp nhập của nó. 2. Viết ứng dụng với option dialog cho phép nhập 4 thông số tọa độ (left-top, right-bottom). Khi chọn OK, các thông số này được áp đặt cho cửa sổ chính. 3. Viết ứng dụng với n chú bướm bay trong vùng client của cửa sổ chính và option dialog cho phép ấn định số lượng (n), vận tốc của bướm.
4. Viết ứng dụng thực hiện chức năng của một cái máy tính bỏ túi. Giao diện là một dialog, các nút bấm số và phép tính được cài đặt bằng các control. 5. Viết ứng dụng kính lúp với giao diện chính là dialog. Khi di chuyển dialog trên màn hình desktop, thông tin của desktop bên dưới dialog được phóng to (với tỉ lệ ấn định được) và hiển thị trong vùng client của dialog.
6. Thực hiện ứng dụng với giao diện chính là dialog có hình ngôi sao.
7. Thực hiện ứng dụng với giao diện chính là dialog mà khuôn dạng của nó được hình thành từ một ảnh bitmap bất kỳ.
8. Thực hiện ứng dụng với giao diện chính là dialog. Dialog này cho phép thay đổi vị trí bằng cách drag chuột ở bất kỳ vị trí nào trên bề mặt của nó. 9. Thực hiện dialog với màu nền tùy chọn, một mục thông báo có nội dung "Mailto: emp@hcmueco.edu.vn". Hình ảnh chuột đổi thành khi di chuyển chuột lên vị trí mục. Click chọn mục cho phép gửi mail.
HD:
- Xử lý WM_CTLCOLOR để đặt màu nền của dialog và màu chữ mục. - Mục cài đặt với số hiệu xác định, thông số dạng chứa WM_NOTIFY. - Xử lý BN_CLICKED trên mục, và gửi mail thông qua hàm sau:
HINSTANCE ShellExecute (
HWND hWnd, // Handle cửa sổ cha. LPCTSTR lpOperation, // Chuỗi nội dung tác vụ
LPCTSTR lpFile, // Đường dẫn tập tin chương trình LPCTSTR lpParameters, // Chuỗi tham số dòng lệnh LPCTSTR lpDirectory, // Đường dẫn thư mục làm việc int nShowCmd // Thông số hiển thị cửa sổ ); Lệnh thực hiện một chương trình ứng dụng trong windows. VÍ DỤÏ: Để gửi mail, ta sử dụng hàm trên như sau.