1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng ập trình windows

312 219 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 312
Dung lượng 5,21 MB

Nội dung

9/13/2011 1 TRƯỜNG ĐẠI HỌC B\CH KHOA H[ NỘI VIỆN CÔNG NGHỆ THÔNG TIN V[ TRUYỀN THÔNG Phạm Ngọc Hưng Bộ môn Kỹ thuật Máy tính hungpn@soict.hut.edu.vn LẬP TRÌNH WINDOWS 9/13/2011 2 Lập trình Windows • Mã số: IT4781 • Thời lượng: 2 (2-1-0-4) – Lý thuyết: 30 tiết – Bài tập: 15 tiết • Học phần tiên quyết: – Ngôn ngữ lập trình C, C++ – Lập trình hướng đối tượng 2 Lập trình Windows 9/13/2011 3 Nội dung • Chương 1. Tổng quan lập trình Windows (4LT + 1BT) • Chương 2. Lập trình Windows VC++/MFC (15LT + 6BT) • Chương 3. Một số chủ đề nâng cao – Tạo thư viện liên kết động (DLL) (3LT + 2BT) – Luồng (Thread) (3LT + 2BT) – Windows Socket (2LT + 2BT) • Chương 4. X}y dựng ứng dụng Windows Form (3LT + 2BT) • Bài tập lớn 3 Lập trình Windows 9/13/2011 4 Tài liệu tham khảo • 1. Ivor Horton’s, Beginning Visual C++ 2010 • 2. Programming Windows with MFC 2 nd • 2. VC++ and MFC Programming 2 nd • 3. Sams teach yourself VC++ 6 in 21 days • 4. MSDN • 5. http://www.functionx.com/visualc/ 4 Lập trình Windows 9/13/2011 5 Chương 1. Tổng quan lập trình Windows • 1.1. Cơ bản về lập trình Windows (1T) • 1.2. Cấu trúc của chương trình Windows (2T) • 1.3. Microsoft Foundation Classes (MFC) • 1.4. Lập trình Windows với VC++ 2008 (1LT + 1BT) 5 Lập trình Windows 9/13/2011 6 1.1. Cơ bản về lập trình Windows • Windows: đồ họa trực quan, tài nguyên đa dạng. • Ứng dụng thân thiện với người sử dụng thông qua giao diện đồ họa Windows. • Các ứng dụng có giao diện tương tác giống nhau: – Windows, title bar, toolbar, menu bar, status bar – Thanh thực đơn: File, Edit, Tool, Help… – Hộp thoại: thường chứa các điều khiển chung: Edit Control, Button Control, Checkbox…. 6 Lập trình Windows 9/13/2011 7 Các thành phần của một cửa sổ 7 Lập trình Windows 9/13/2011 8 Cơ chế lập trình Event-driven 8 Lập trình Windows 9/13/2011 9 Thông điệp (Windows Messages) • Hệ thống (Windows) ghi lại mỗi sự kiện xảy ra (event) trong một thông điệp (message) và đặt trong hàng đợi thông điệp (messages queue) • Thông điệp phát sinh: – Từ hệ thống (Windows OS) – Từ ứng dụng • Ví dụ: click/drag chuột, ấn phím, minimize/maximize/close cửa sổ, thay đổi kích thước cửa sổ, … 9 Lập trình Windows 9/13/2011 10 Windows Message (cont.) • HĐH Windows đảm nhiệm việc truyền tất cả các thông điệp của ứng dụng vào các cửa sổ khác nhau của ứng dụng đó. • Một chương trình Windows phải chứa một hàm đặc biệt để xử lý các thông điệp gọi là hàm xử lý cửa sổ WinProc (hoặc WindowProc): – Được gọi khi có bất kỳ thông điệp được truyền đến cửa sổ (thông qua con trỏ hàm) – Xử lý các thông điệp đó và trả điều khiển về cho hệ thống. • Nhiều thông điệp trả lại cho Windows xử lý, gọi hàm DefWindowProc( ) 10 Lập trình Windows [...]...9/13/2011 Windows Message (cont.) Lập trình Windows 11 11 9/13/2011 Windows API • Application Programming Interface: Giao diện lập trình ứng dụng • Cung cấp các hàm truy cập tài nguyên trong hệ thống (Windows) chứa trong các thư viện liên kết động DLL • Các ứng dụng có thể truy cập đến các hàm API • Các hàm GDI (Graphics Device Interface) cho phép ứng dụng làm việc với nhiều kiểu thiết bị đồ họa Lập trình Windows. .. 9/13/2011 1.2 Cấu trúc của chương trình Windows Lập trình Windows 19 19 9/13/2011 1.2 Cấu trúc của chương trình Windows • Chương trình Windows đơn giản (dùng hàm API) gồm 2 hàm WinMain() và hàm xử lý cửa sổ WinProc() • WinMain() thực hiện các chức năng: – – – – Tell Windows what kind of window the program requires Create the program window Initialize the program window Retrieve Windows messages intended for... LPARAM bổ sung thông tin kèm theo thông điệp Lập trình Windows 29 29 9/13/2011 Message Loop • Windows duy trì một hàng đợi thông điệp cho mỗi chương trình • Khi sự kiện nhập thông tin xuất hiện, Windows dịch sự kiện thành dạng thông điệp và đưa vào hàng đợi thông điệp của ứng dụng tương ứng • Ứng dụng nhận thông điệp từ hàng đợi bằng đoạn mã: MSG msg; // Windows message structure while (GetMessage(&msg,... : LoadIcon(…) LoadCursor(…) SomeOtherName(…) Lập trình Windows 15 15 9/13/2011 Microsoft Style (2) • Qui ước: bắt đầu (tiền tố) chữ thường thể hiện kiểu dữ liệu biến • Ví dụ: szCmdLine là một biến lưu chuỗi nhập từ dòng lệnh, sz là thể hiện cho biến kiểu chuỗi kết thúc ký tự 0, • hInstance và hPrevInstance, trong đó h viết tắt cho kiểu handle Lập trình Windows 16 16 9/13/2011 Microsoft Style (3) –... kết thúc kí tự 0 Lập trình Windows 17 17 9/13/2011 Microsoft style (4) - Calling convention • Định nghĩa kiểu h{m gọi bởi Windows OS #define CALLBACK stdcall #define WINAPI stdcall #define APIENTRY WINAPI #define APIPRIVATE stdcall #define PASCAL stdcall • Thêm vào trước tên hàm để chỉ ra cho compiler rằng hàm này có cách tổ chức phục vụ cho việc gọi đến như thế nào Lập trình Windows 18 18 9/13/2011... chứa thông điệp có định danh WM_QUIT (0x0012), khi đó vòng lặp thông điệp ngưng và ứng dụng kết thúc • Ngược lại thì hàm sẽ trả về một giá trị khác 0 với các thông điệp khác Lập trình Windows 32 32 9/13/2011 Multitasking Lập trình Windows 33 33 9/13/2011 Hàm xử lý thông điệp WinProc - Ví dụ • Tìm hiểu một hàm xử lý cửa sổ: LRESULT CALLBACK WinProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {... // Tham số bổ sung /* Hiển thị cửa sổ */ ShowWindow (hwnd, iCmdShow); UpdateWindow (hwnd); /* Chu trình xử lý các thông điệp*/ while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return msg.wParam; } 23 Lập trình Windows 23 9/13/2011 Định nghĩa lớp cửa sổ WNDCLASS • Windows cung cấp một cấu trúc WNDCLASS (file winuser.h) gọi là lớp cửa sổ • Lớp này chứa các thuộc... không xác định LPTSTR Giống như DBCS LPSTR nhưng có thể chuyển sang dạng Unicode và LPCTSTR Giống như DBCS LPCTSTR nhưng có thể chuyển sang dạng Unicode và Lập trình Windows 14 14 9/13/2011 Microsoft style (1) • Tất cả c|c kiểu dữ liệu mở rộng của windows , tên class, tên struct, tên hằng số định sẵn đều được viết in hoa Ví dụ : Tên kiểu dữ liệu : UINT , ATOM , HANDLE, HWND, BYTE,… Tên cấu trúc : MSG,... LoadIcon Dùng hàm LoadCursor Dùng hàm GetStockObject Tên thực đơn gắn với cửa sổ, thực đơn này được khai báo trong tập tin tài nguyên 25 25 9/13/2011 Đăng ký lớp cửa sổ • Sau khi định nghĩa lớp cửa sổ phải đăng ký bằng hàm RegisterClass: ATOM RegisterClass(CONST WNDCLASS * lpWndClass); Lập trình Windows 26 26 9/13/2011 Tạo cửa sổ • Lớp cửa sổ thể hiện đặc tính chung cửa sổ Cho phép tạo nhiều thể hiện cửa... cửa sổ ra toàn bộ màn hình SW_MINIMIZE: Thu nhỏ thành biểu tượng trên màn hình SW_RESTORE: Hiển thị dưới dạng chuẩn Lập trình Windows 28 28 9/13/2011 1.2.2 Hàm xử lý thông điệp WinProc • Có thể có nhiều hơn một hàm xử lý thông điệp • Luôn đi kèm cửa sổ của nó • Giao tiếp với hệ thống (Windows) , toàn bộ các thông điệp gửi tới được xử lý qua hàm này • Thường khai báo như sau: LRESULT CALLBACK WinProc . trình Windows 9/13/2011 7 Các thành phần của một cửa sổ 7 Lập trình Windows 9/13/2011 8 Cơ chế lập trình Event-driven 8 Lập trình Windows 9/13/2011 9 Thông điệp (Windows Messages) • Hệ thống (Windows) . Nhiều thông điệp trả lại cho Windows xử lý, gọi hàm DefWindowProc( ) 10 Lập trình Windows 9/13/2011 11 Windows Message (cont.) 11 Lập trình Windows 9/13/2011 12 Windows API • Application Programming. thế nào. 18 Lập trình Windows 9/13/2011 19 1.2. Cấu trúc của chương trình Windows 19 Lập trình Windows 9/13/2011 20 1.2. Cấu trúc của chương trình Windows • Chương trình Windows đơn giản (dùng

Ngày đăng: 20/10/2014, 20:57

TỪ KHÓA LIÊN QUAN