Ths Trần Ngọc Bảo 1/4 BÀI TẬPTHỰCHÀNHLẬPTRÌNHC FOR WINDOWS 1. Phần 1: Làm quen với một chương trình Win API 1.1. Bài 01 – Chương trình minh họa đầu tiên - Yêu cầu : Tạo ứng dụng “Win32 Application” đơn giản bằng Wizard trong visual C++ 6.0 - Hướng dẫn gợi ý : o Khởi động Visual C++ 6.0 o Dùng chức năng New Project để tạo project mới o Chọn loại project “Win32 Application” o Chọn chức năng “A typical Hello World !” application o Hoàn tất tạo project, biên dịch và chạy thử chương trình, xem kết quả 1.2. Bài 02 – Chương trình minh họa đầu tiên (tt) - Yêu cầu : Sửa đổi chương trình trong bài 01 o Thay đổi tiêu đề của cửa sổ thành “Chương trình C/API” o Thay đổi nội dung hiển thị trên màn hình Client area thành “Day la chuong trinh minh hoa tao ung dung Windows trong visual C++ bang thu vien API Tac gia: Nguyen Van A…” - Hướng dẫn gợi ý : o Thay đổi tiêu đề của cửa sổ thành “Chương trình C/API” // Initialize global strings LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); strcpy(szTitle,"Chuong trinh C/API"); o Thay đổi nội dung hiển thị trên màn hình Client area thành GetClientRect(hWnd, &rt); strcpy(szHello,"Day la chuong trinh minh hoa tao ung dung Windows\n\r trong visual C++ bang thu vien API \n\rTac gia: Nguyen Van A"); DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); o Biên dịch và chạy thử chương trình, xem kết quả BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM TP,HCM KHOA TOÁN – TIN HỌC http://www.hcmup.edu.vn Bài tậpthựchànhlậptrìnhC for Windows Ths Trần Ngọc Bảo 2/4 1.3. Bài 03 - Tài nguyên của ứng dụng - Yêu cầu : Tạo ứng dụng tương tự bàitập 01 o Thay đổi biểu tượng (Icon) của chương trình o Thay đổi con trỏ chuột (Cursor) của chương trình o Thay đổi nội dung của hộp thoại (Dialog) “About” - Hướng dẫn gợi ý : o Thay đổi biểu tượng (Icon) của chương trình wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); Hoặc Thêm mới một ICON Sửa lệnh LoadIcon //wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_ICON1); o Thay đổi con trỏ chuột (Cursor) của chương trình //wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hCursor = LoadCursor(NULL,IDC_WAIT); Hoặc Thêm mới một CURSOR Sửa lệnh LoadCursor //wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hCursor = LoadCursor(hInstance,(LPCTSTR)IDC_CURSOR1); o Thay đổi nội dung của hộp thoại (Dialog) “About” Chọn Tab ResourceView Click vào mục dialog Double click “IDD_ABOUTBOX” Sửa nội dung “Bai03 Version 1.0” thành “Bai tap 03 phien ban 1.0” o Biên dịch và chạy thử chương trình, xem kết quả 1.4. Bài 04 - Tài nguyên của ứng dụng (tt) - Yêu cầu : Tạo ứng dụng tương tự bàitập 01 o Bổ sung thêm vào menu “File” các mục sau: New, Open, Save o Thêm mới 1 menu popup “Edit” với các item sau: Undo, Redo, Cut, Copy, Paste, Delete Bài tậpthựchànhlậptrìnhC for Windows Ths Trần Ngọc Bảo 3/4 o Mỗi menu item đều có phím tắt tương ứng - Hướng dẫn gợi ý : o Chọn Tab ResourceView o Click vào mục Menu o Double click “IDC_BAI04” o Bổ sung thêm vào menu “File” các mục sau: New, Open, Save o Thêm mới 1 menu popup “Edit” với các item sau: Undo, Redo, Cut, Copy, Paste, Delete 1.5. Bài 05 - lậptrình sự kiện - Yêu cầu : Bổ sung bàitập 04 o Khi người dùng chọn menu item, hiển thị thông báo “Bạn vừa chọn chức năng xyz” o Khi thoát chương trình hiển thị thông báo hỏi “Bạn có muốn thoát khỏi chương trình không” ? - Hướng dẫn gợi ý : o Khi người dùng chọn menu item, hiển thị thông báo “Bạn vừa chọn chức năng xyz” Viết xử lý cho các menu item trong message WM_COMMAND trong hàm WndProc case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break; case IDM_OPEN: MessageBox(hWnd,"Ban dang chon chuc nang Open","Thong bao",MB_OK|MB_ICONEXCLAMATION); break; case IDM_NEW: MessageBox(hWnd,"Ban dang chon chuc nang NEW","Thong bao",MB_OK|MB_ICONEXCLAMATION); break;… } Bài tậpthựchànhlậptrìnhC for Windows Ths Trần Ngọc Bảo 4/4 o Khi thoát chương trình hiển thị dialog hỏi “Bạn có muốn thoát khỏi chương trình không” ? Thay nội dung đoạn code xử lý “case IDM_EXIT:” trong hàm LRESULT CALLBACK WndProc /*case IDM_EXIT: DestroyWindow(hWnd); break; */ case IDM_EXIT: int nRes; nRes = MessageBox(hWnd,"Ban co muon thoat khong ?","Confirm",MB_OKCANCEL|MB_ICONQUESTION); if (nRes == IDOK) DestroyWindow(hWnd); break; 1.6. Bài 06 - Lậptrình sự kiện (tt) - Yêu cầu : Bổ sung bàitập 05 o Khi người dùng click chuột trái, hiển thị thông báo “Bạn vừa nhan trai chuot, toa do X = , Y = ” o Khi người dùng click chuột phải, hiển thị thông báo “Bạn vừa nhan phai chuot, toa do X = , Y = ” - Hướng dẫn gợi ý : o Khi người dùng click chuột trái, hiển thị thông báo “Bạn vừa nhan trai chuot, toa do X = , Y = ” Xử lý sự kiện WM_LBUTTONDOWN X = LOWORD(lParam); Y = HIWORD(lParam); o Khi người dùng click chuột phải, hiển thị thông báo “Bạn vừa nhan phai chuot, toa do X = , Y = ” Xử lý sự kiện WM_RBUTTONDOWN X = LOWORD(lParam); Y = HIWORD(lParam); . = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_ICON1); o Thay đổi con trỏ chuột (Cursor) c a chương trình //wcex.hCursor = LoadCursor(NULL,. tượng (Icon) c a chương trình wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); Ho c Thêm mới một ICON Sửa lệnh LoadIcon //wcex.hIconSm. GIÁO D C VÀ ĐÀO TẠO TRƯỜNG ĐẠI H C SƯ PHẠM TP,HCM KHOA TOÁN – TIN H C http://www.hcmup.edu.vn Bài tập th c hành lập trình C for Windows Ths Trần Ng c Bảo 2/4 1.3. Bài 03 - Tài nguyên c a