Lập trình C Windows 07_Các khái niệm

22 462 2
Lập trình C  Windows 07_Các khái niệm

Đ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

Lập trình C Windows

Lập trình C Windows Các khái niệm Nguyễn Tri Tuấn Khoa CNTT – ĐH.KHTN.Tp.HCM Email: nttuan@ fit.hcmuns.edu.vn Nội dung Vài điểm khác biệt lập trình Windows DOS  Các thư viện lập trình Windows  Các loại ứng dụng  Các khái niệm  Lập trình kiện (Even driven programming)  Các thành phần giao diện đồ họa (GUI)  Tài nguyên ứng dụng (Resources)  Một chương trình tổng quát xây dựng Win32 API  Các kiểu liệu  C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 Vài điểm khác biệt lập trình Windows DOS Windows DOS Lập trình kiện, dựa vào thơng điệp (message) Multi- tasking Thực theo định Single task Multi- CPU Single CPU Tích hợp sẵn Multimedia Phải dùng thư viện Multimedia riêng Hỗ trợ 32 bits hay Ứng dụng 16 bits Hỗ trợ nhiều công nghệ DLL, OLE, DDE, COM, OpenGL, DirectX, … Khơng có C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 Các thư viện lập trình Windows  SDK - Software Development Kit ƒ ƒ ƒ Là thư viện lập trình tảng HĐH Windows Cung cấp tất công cụ cần thiết để xây dựng ứng dụng Windows Được sử dụng thư viện sở để tạo thư viện cấp cao ngôn ngữ lập trình VD OWL BorlandC, MFC Visual C++,… C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 Các thư viện lập trình Windows …(tt)  Một số thành phần tiêu biểu SDK: Win32 API ƒ GDI/GDI+ ƒ Windows MultiMedia ƒ OpenGL ƒ DirectX ƒ COM/COM+ ƒ ADO (ActiveX Data Object) ƒ OLE DB ƒ … Xem thêm MSDN/Platform SDK Documentation/Getting started/Content of Platform SDK ƒ C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 Các thư viện lập trình Windows …(tt)  OWL - Object Windows Library ƒ  MFC - Microsoft Foundation Classes ƒ  Là thư viện hướng đối tượng BorlandC++ Là thư viện hướng đối tượng Visual C++ Một ứng dụng Windows viết ƒ ƒ Thư viện SDK Một thư viện khác (OWL, MFC,…) phối hợp với SDK C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 Các loại ứng dụng        Win32 Console: ứng dụng 32 bits, với giao diện dạng DOS command line Win32 (SDK): ứng dụng 32 bits, sử dụng thư viện SDK Win32 DLL: ứng dụng 32 bits, dạng thư viện liên kết động (Dynamic-linked library), sử dụng SDK Win32 LIB: ứng dụng 32 bits, dạng thư viện liên kết tĩnh (Static-linked library) MFC EXE: ứng dụng 32 bits, sử dụng thư viện Microsoft Foundation Class MFC DLL: ứng dụng 32 bits, dạng thư viện liên kết động (Dynamic-linked library), sử dụng MFC … C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 Các khái niệm  Handle: ƒ  ID (Identifier): ƒ  Một giá trị nguyên ứng dụng tạo để làm định danh cho đối tượng (menu item, control) Instance: ƒ  Một giá trị 32 bits không dấu (unsigned) HĐH tạo để làm định danh cho đối tượng (cửa sổ, file, vùng nhớ, menu,…) Một giá trị nguyên HĐH tạo để định danh thể thực thi ứng dụng Callback: ƒ Thuộc tính hàm/thủ tục gọi HĐH, ứng dụng C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 Lập trình kiện (Even driven programming) Phát sinh kiện thông điệp C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 Lập trình kiện (Even driven programming)…(tt) Qui trình xử lý thông điệp C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 10 Lập trình kiện (Even driven programming)…(tt) // Vịng lặp xử lý thơng điệp ứng dụng – // Message loop MSG msg; // lấy thông điệp khỏi hàng đợi ứng dụng while (GetMessage(&msg, NULL, 0, 0)) { // chuyển đổi phím ảo (virtual key) thành thơng điệp ký tự TranslateMessage(&msg); // chuyển message đến hàm xử lý thông điệp cửa // sổ tương ứng DispatchMessage(&msg); } return msg.wParam; C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 11 Các thành phần giao diện đồ họa (GUI) Các dạng GUI  Cửa sổ  ƒ ƒ ƒ ƒ ƒ ƒ Định nghĩa Nguyên tắc quản lý Phân loại Lớp cửa sổ (window class) Hàm xử lý thông điệp (window procedure) Các thuộc tính C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 12 Các thành phần giao diện đồ họa (GUI)…(tt)   GUI: Graphics User Interface Các dạng GUI bản: ƒ SDI - Single Document Interface     ƒ MDI - Multiple Document Interface     ƒ Một cửa sổ làm việc Cho phép thay đổi kích thước cửa sổ (Resizeable) Khơng có cửa sổ Ví dụ: NotePad, Paint,… Một cửa sổ làm việc (Frame window) nhiều cửa sổ (Child window) Cho phép thay đổi kích thước cửa sổ (Resizeable) Cho phép Maximize/Minimize/Close cửa sổ Ví dụ: Word, Excel, VC++,… Dialog      Một cửa sổ làm việc Thường kích thước cố định Thường khơng có menu bar Thường có button, edit box, list-box,… Ví dụ: Calculator, CD Player,… C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 13 Các thành phần giao diện đồ họa (GUI)…(tt) Dialog, SDI, MDI C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 14 GUI – Window …(tt)  Định nghĩa: vùng chữ nhật hình, ƒ dùng để hiển thị kết output, ƒ nhận input từ người dùng ¾ Cơng việc ứng dụng GUI tạo cửa sổ làm việc ƒ  Nguyên tắc quản lý: ƒ ƒ Mơ hình phân cấp: cửa sổ có cửa sổ cha (parent window), ngoại trừ cửa sổ Desktop Tại thời điểm, có cửa sổ nhận input từ user (Active/Focused window) C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 15 Spring 2004 16 GUI – Window …(tt)  Phân loại: ƒ ƒ ƒ ƒ Cửa sổ Desktop Cửa sổ tiêu chuẩn Cửa sổ hộp thoại (Dialog box) Các control C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM GUI – Window …(tt) Desktop Window App Window Child window Control Parent window Dialog box C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 17 GUI – Window …(tt) Window Icon Window Caption Minimized, Restored, Maximized buttons Titlebar Tool-bar Menubar Client Area Scrollbar Status-bar Resized border Các thành phần cửa sổ tiêu chuẩn C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 18 GUI – Window …(tt) Propertysheet StaticText Combobox (Edit-text + Listbox) Drop-down List Checkbox Pushbutton Các dạng control C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 19 Spring 2004 20 GUI – Window …(tt) Các dạng control C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM 10 GUI – Window …(tt)  Lớp cửa sổ (window class): ƒ ƒ ƒ Là tập thuộc tính mà HĐH Windows sử dụng làm khn mẫu (template) tạo lập cửa sổ Mỗi lớp cửa sổ đặc trưng tên (class-name) dạng chuỗi Phân loại class:  Lớp cửa sổ hệ thống (System class) ƒ ƒ  Được định nghĩa trước HĐH Windows Các ứng dụng hủy bỏ Lớp cửa sổ ứng dụng định nghĩa: ƒ ƒ ƒ ƒ Được đăng ký ứng dụng Có thể hủy bỏ khơng cịn sử dụng Lớp tồn cục ứng dụng (Application global class) Lớp cục ứng dụng (Application local class) C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 21 GUI – Window …(tt) Class Description Button The class for a button ComboBox The class for a combo box Edit The class for an edit control ListBox The class for a list box MDIClient The class for an MDI client window ScrollBar The class for a scroll bar Static The class for a static control Các lớp cửa sổ hệ thống C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 22 11 GUI – Window …(tt)  Lớp cửa sổ (window class): ƒ ƒ ƒ Mỗi cửa sổ thuộc lớp xác định Cần phải đăng ký lớp trước tạo lập cửa sổ, lớp chưa đăng ký Đăng ký lớp cửa sổ:  Cấu trúc liệu: WNDCLASS / WNDCLASSEX  Hàm sử dụng: RegisterClass / RegisterClassEx ƒ Hủy bỏ lớp cửa sổ đăng ký:  Hàm sử dụng: UnregisterClass C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 23 GUI – Window …(tt) VD Đăng ký lớp cửa sổ WNDCLASS wc; wc.lpszClassName = “MyClass”; // tên class wc.lpfnWndProc = MyWndProc; // tên hàm xử lý message wc.hInstance = hInstance; wc.hCursor = LoadCursor(hInstance, (LPSTR) IDC_CURSOR); wc.hIcon = LoadIcon(hInstance, (LPSTR) IDI_ICON); wc.hbrBackground = (HBRUSH) (COLOR_APPWORKSPACE + 1); wc.lpszMenuName = (LPSTR) IDR_MENU; wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; wc.cbClsExtra = 0; wc.cbWndExtra = 0; if (!RegisterClass(&wc)) return FALSE; C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 24 12 GUI – Window …(tt)  Minh họa cấu trúc WNDCLASS typedef struct _WNDCLASS { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; } WNDCLASS, *PWNDCLASS; C4W - Basic - Nguyen Tri Tuan - DH.KHTN Tp.HCM Spring 2004 25 GUI – Window …(tt) Thuộc tính Ý nghĩa lpszClassName tên lớp, chuỗi kết thúc lpfnWndProc hàm tiếp nhận xử lý thông điệp hInstance Instance ứng dụng thực việc đăng ký class hCursor handle cursor, xác định dạng cursor vùng client hIcon handle icon, xác định biểu tượng cửa sổ hbrBackground handle brush, xác định cách tô vùng client; +1 muốn sử dụng màu mặc định hệ thống VD COLOR_BACKGROUND + lpszMenuName tên menu bar, chuỗi kết thúc Style kiểu dáng lớp (class style) cbClsExtra số byte dành riêng cho class (

Ngày đăng: 14/11/2012, 17:00

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan