Bài giảng Lập trình môi trường Window: Chương 1 - Ngô Thanh Hùng giới thiệu tổng quan về môi trường Windows; giao diện người dùng kiểu đồ họa GUI, các khái niệm và ứng dùng cơ bản; giới thiệu .NET, .NET Framework, CLR, dự án và giải pháp. Mời các bạn tham khảo.
Trang 1Tổng quan lập trình môi trường Windows
Trang 2Lịch sử Windows
Windows Desktop Windows Server
Trang 3Môi trường Windows
Trang 4Giao diện người dùng kiểu đồ hoạ (GUI)
Trang 5v Windows 32 bits hoạt động theo cơ chế preemptive Mỗi chương trình có thể được tách thành các thread thực hiện cùng lúc
Lập trình môi trường Windows
5
Trang 7Tư tưởng hướng đối tượng
v Cửa sổ ứng dụng chính và các cửa sổ con
là các thể hiện (đối tượng) của lớp cửa sổ được đăng ký trước
Lập trình môi trường Windows
7
Trang 8Giao diện đồ hoạ độc lập thiết bị
vGiao diện đồ hoạ của Window cho phéptạo các đối tượng đồ hoạ và định dạng vănbản cho cả màn hình và máy in
v Chương trình viết cho Windows khôngđiều khiển trực tiếp thiết bị xuất như mànhình hay máy in mà thông qua một ngônngữ lập trình đồ hoạ gọi là Giao Diện Thiết
Bị Đồ Hoạ (Graphics Device Interface:GDI)
2/17/2009
Trang 9Kiến trúc hướng thông điệp (message driven)
v Windows và các ứng dụng Windows hoạt động theo
cơ chế truyền, nhận thông điệp
vCác hoạt động của chương trình thay đổi tuỳ theo
thông điệp mà nó nhận được,
vThông điệp được gởi qua lại giữa ứng dụng và
Windows, giữa các ứng dụng với nhau
v Cửa sổ ứng dụng tự động được vẽ lại mỗi khi có sự thay đổi kích thước hay vùng bị che Điều này được
thực hiện nhờ hệ điều hành gởi thông điệp cho
chương trình
Lập trình môi trường Windows
9
Trang 10Thủ tục cửa sổ
vHệ điều hành ra lệnh cho ứng dụng nhờthủ tục cửa sổ (Window Procedure)
vHàm cửa sổ cho biết phản ứng của chươngtrình với các tác động bên ngoài như userinput
v Hệ điều hành Windows gởi thông điệp chomột chương trình ứng dụng bằng cáchgọi hàm cửa sổ của ứng dụng đó, vớitham số là thông điệp
Trang 11Đặc điểm cơ bản
• Lập trình hướng sự kiện, dựa vào thông điệp
• Đa nhiệm
• Môi trường 32/64 bits
• Hỗ trợ thư viện liên kết động
Lập trình môi trường Windows
11
Trang 12Windows và DOS
Lập trình sự kiện, dựa vào thông
điệp (message) Thực hiện tuần tự theo chỉ địnhMulti-tasking Single task
Tích hợp sẵn Multimedia Phải dùng các thư viện
Multimedia riêng
Hỗ trợ 32 bits hay hơn nữa Ứng dụng 16 bits
DLL, OLE, DDE, COM, OpenGL,
Trang 13Các loại ứng dụng cơ bản
diện đồ họa
liên kết động (Dynamic-linked library)
kết tĩnh (Static-linked library)
giao diện dạng DOS command line
Lập trình môi trường Windows
13
Trang 14Windows Application dựa C
Năm Ngôn ngữ Công cụ
programming interface (API)
Trang 15Các thư viện lập trình
• Windows API
• OWL - Object Windows Library
• MFC - Microsoft Foundation Classes
• ATL - Active Template Library
• WTL - Windows Template Library
Lập trình môi trường Windows
15
Trang 16Các khái niệm cơ bản
Trang 17Lập trình hướng sự kiện
vQui trình xử lý thông điệp
vCác loại thông điệp thường gặp
vVòng lặp xử lý thông điệp
Lập trình môi trường Windows
17
Trang 18Phát sinh các sự kiện và thông điệp
Trang 19Lập trình hướng sự kiện
• luồng điều khiển của chương trình được xác định dựa
vào hành động của người dùng khi sử dụng chương trình
Lập trình môi trường Windows
19
Trang 20Các khái niệm cơ bản
Thông điệp Được gửi khi
WM_CHAR Có một ký tự được nhập từ bàn phím
WM_COMMAND Người sử dụng click một mục trên menu, button…
WM_CREATE Một cửa sổ được tạo ra
WM_DESTROY Một cửa sổ bị huỷ.
WM_LBUTTONDOWN Phím trái chuột được nhấn
WM_LBUTTONUP Phím trái chuột được thả ra
WM_MOUSEMOVE Con trỏ chuột di chuyển trên màn hình
WM_PAINT Cửa sổ cần vẽ lại
WM_QUIT Ứng dụng sắp kết thúc
WM_SIZE Cửa sổ có thay đổi kích thước
Trang 21Tài nguyên - Resource
vTài nguyên (Menu bar, dialog, bitmap,
icon, cursor,…) của ứng dụng được định
nghĩa bên ngoài và được thêm vào trong file thực thi của ứng dụng khi biên dịch
• Các loại tài nguyên của ứng dụng
§ Accelerator table: bảng mô tả phím tắt (hot-key)
§ Bitmap: ảnh bitmap
§ Caret: con trỏ văn bản
§ Cursor: con trỏ chuột
§ Dialog box: khung hộp thoại (Dialogbox Template)
§ Font: font chữ
Lập trình môi trường Windows
21
Trang 22Tài nguyên - Resource
• Các loại tài nguyên của ứng dụng
§ Icon: biểu tượng
§ Menu: menu
§ String-table entry: bảng mô tả các chuỗi ký tự
§ Version information: bảng mô tả thông tin “phiên bản”
Trang 23Giao diện đồ họa
vCác dạng ứng dụng giao diện đồ họa
§ SDI - Single Document Interface
§ MDI - Multiple Document Interface
§ Dialog
Lập trình môi trường Windows
23
Trang 24SDI - Single Document Interface
Trang 25MDI - Multiple Document Interface
vMột cửa sổ làm việc chính và nhiều cửa sổ con
vCho phép thay đổi kích thước cửa sổ
Trang 27vMỗi cửa sổ đều có 1 cửa sổ cha (parent
window), ngoại trừ cửa sổ nền Desktop
• Tại mỗi thời điểm, chỉ có một cửa sổ nhận input từ
người dùng (Active/Focused window)
Lập trình môi trường Windows
27
Trang 28Các thành phần của một cửa sổ
Trang 29Tab Control
Trang 30Các control thông dụng
Trang 31Qui ước đặt tên các hằng
vDùng chữ hoa với tiếp đầu ngữ mô tả loại
Lập trình môi trường Windows
CS_HREDRAW DT_SINGLELINE WM_CREATE
CS_VREDRAW IDC_ARROW WM_DESTROY
CW_USEDEFAULT DT_VCENTER WM_PAINT
DT_CENTER IDI_APPLICATION WS_OVERLAPPEDWINDOW
Trang 32Giới thiệu NET
giúp tạo và cài đặt các ứng dụng, NET
Trang 33.NET Framework
phần chủ yếu
§ Common Language Runtime (CLR)
§ Các lớp cơ sở của NET Framework
§ Giao diện người dùng
Lập trình môi trường Windows
33
Trang 34Base Class Library Common Language Specification
Common Language Runtime
ADO.NET: Data and XML
ASP.NET: Web Services
and Web Forms
VJ# …
Windows Forms
Trang 35vCommon Language Runtime là môi trường
để cho tất cả các ứng dụng viết trên NETchạy
vCLR hỗ trợ nhiều ngôn ngữ và cung cấpcác công cụ dùng chung cho các ngôn ngữlập trình khác nhau, giúp cho việc tươngtác qua lại giữa các ngôn ngữ lập trìnhkhác nhau dễ dàng hơn
Lập trình môi trường Windows
35
Trang 36VB NET Compiler VC# Compiler
Microsoft Intermediate Language (MSIL)
Common Language Runtime (CLR)
Native Code Just in Time (JIT) Compilers
Trang 37Quá trình biên dịch
Lập trình môi trường Windows
37
Trang 38Class Loading and Layout Execution support
Garbage Collection Security
Trang 39Các đặc điểm của CLR
vTự động quản lý bộ nhớ
vHệ thống kiểu dữ liệu dùng chung giữa cácngôn ngữ lập trình
vTính tương tác giữa các ngôn ngữ
vĐộc lập với cấu trúc phần cứng bên dưới
vCơ chế bảo mật hệ thống
vAn toàn kiểu dữ liệu
Lập trình môi trường Windows
39
Trang 40Các lớp cơ sở của NET framework
vĐược xây dựng theo phương pháp hướng đối tượng
vCung cấp các lớp dùng để xử lý các vấn đề thường gặp phải khi phát triển ứng dụng
vĐược dùng chung cho nhiều ngôn ngữ lập trình khác nhau
vĐược tổ chức thành những namespace
được lưu trữ trong assembly.
Trang 41Các lớp cơ sở của NET framework
vNamespace dùng để nhóm các lớp và các interface có mối quan hệ luận lý với nhau
vCác namespace có thể được dùng trong
bất cứ ngôn ngữ nào tương thích với NET
vNamespace được sử dụng để hạn chế việc dùng cùng một tên cho 2 hay nhiều lớp có mục đích sử dụng khác nhau
Lập trình môi trường Windows
41
Trang 42Các lớp cơ sở của NET framework
vAssembly là một đơn vị phần mềm có
chứa đầy đủ các thông tin về các lớp hiện thực, các cấu trúc và các interface để hiện thực ứng dụng
vAssembly lưu trữ các thông tin để mô tả chính nó, thông tin này gọi là meta data
Trang 43Các lớp cơ sở của NET framework
Trang 44Giao diện người dùng
• Window form: dùng để tạo ứng dụng cục bộ có giao diện cửa sổ
vWeb form: dùng để tạo ứng dụng web
vConsole: Dùng để tạo ứng dụng được
tương tác bằng lệnh giống như giao diện
Ms Dos
Trang 45Ưu điểm của NET Framework
vDùng chung cho nhiều ngôn ngữ lập trình
vTạo ứng dụng độc lập với môi trường phần cứng bên dưới
vCho phép viết ứng dụng bằng nhiều ngôn ngữ tương thích với NET
vTự động quản lý tài nguyên
vDễ dàng triển khai ứng dụng
Lập trình môi trường Windows
45
Trang 46Visual studio.NET IDE
vVisual Studio NET Integrated
Development Environment (IDE) cung cấp một giao diện dùng chung để phát triển
nhiều loại dự án khác nhau
vCung cấp môi trường để thiết kế, viết
code, kiểm tra và sửa lỗi khi phát triển
Trang 47Dự án và giải pháp
vTrong visual studio NET ứng dụng được
tạo thành từ nhiều phần tử ví dụ như file, thư mục
vĐể tổ chức các phần tử trên NET cung cấp
dự án và giải pháp
vDự án (project): cho phép xây dựng, dịch
và sửa lỗi các thành phần tạo nên ứng
dụng Dự án được dịch ra thành file exe
Trang 48Dự án và project
Solution Project 1
Project 2
Miscellaneous Files
Project 1 Items
Project 2 Items
Trang 49Q & A
Lập trình môi trường Windows
49