Mc lc
Trang
Bài 1: GII THIU CHUNG .................................................................. 2
1. M đầu......................................................................................................... 2
2. Các thư vin lp trình ca Windows ............................................................. 3
3. Các khái nim cơ bn................................................................................... 4
4. Lp trình s kin (Even driven programming)............................................... 5
5. Các thành phn giao din đồ ha (GUI) ....................................................... 6
6. Cu trúc chương trình C for Win................................................................. 10
7. Qui trình hot động ca chương trình ng dng ........................................ 10
8. Mt s quy ước đặt tên............................................................................... 11
9. Ví d........................................................................................................... 11
10. Tài nguyên ca ng dng (Resources) ................................................... 18
11. Mt s kiu d liu mi........................................................................... 19
12. Phân tích, tìm hiu source code ca project ........................................... 19
Bài 2: PAINT VÀ REPAINT................................................................. 24
1. Gii thiu.................................................................................................... 24
2. Tng quan v GDI (Graphics Device Interface) .......................................... 25
3. Mt s hàm đồ ha cơ s........................................................................... 28
4. Kết lun....................................................................................................... 30
Bài 3: CÁC THIT B NHP LIU...................................................... 31 U
1. Bàn phím .................................................................................................... 31
2. Thiết b chut.............................................................................................. 38
3. Timer........................................................................................................... 41
Bài 4: HP THOI VÀ ĐIU KHIN................................................... 45
1. Hp thoi..................................................................................................... 45
2. Menu ........................................................................................................... 57
Bài 5: X LÝ VĂN BN...................................................................... 62
1. Hin th văn bn.......................................................................................... 62
2. Định dng văn bn...................................................................................... 64
3. S dng font ............................................................................................... 65
Tài liu tham kho............................................................................... 69
Bài 1:Gii thiu chung Trn Minh Thái
Bài 1: GII THIU CHUNG
Phân b thi lượng:
- S tiết ging lp: 6 tiết
- S tiết t hc nhà: 6 tiết
- S tiết cài đặt chương trình nhà: 12 tiết
1. M đầu
Các ng dng ca Windows rt d s dng, nhưng rt khó đối vi người đã
to lp ra chúng. Để đạt được tính d dùng đòi hi người lp trình phi b
ra rt nhiu công sc để cài đặt.
Lp trình trên Windows khó và phc tp hơn nhiu so vi lp trình trên
DOS. Tuy nhiên lp trình trên Windows s gii quyết được mt s vn đề
khó khăn trong môi trường DOS như xây dng giao din người dùng, qun
lý b nh o, độc lp thiết b vào ra, thâm nhp Internet, kh năng chia s
tài nguyên, ...
Windows cung cp các hàm để người lp trình thâm nhp các đặc trưng ca
h điu hành gi là giao din lp trình ng dng (Application Programming
Interface – API). Nhng hàm này được đặt trong các thư vin liên kết động
(Dynamic Link Library – DLL). Các chương trình ng dng s dng chúng
thông qua các li gi hàm và ch chia s được khi trong máy có cài đặt
Windows.
Vài đim khác bit gia lp trình Windows và DOS:
Windows DOS
Lp trình s kin, da vào thông đip
(message) Thc hin tun t theo ch định
Multi-tasking Single task
Multi-CPU Single CPU
Tích hp sn Multimedia Phi dùng các thư vin Multimedia riêng
H tr 32 bits hay hơn na ng dng 16 bits
H tr nhiu công ngh DLL, OLE,
DDE, COM, OpenGL, DirectX,… Không có
Bài ging: Lp trình C for Win ...............................................................................................Trang 2/69
Bài 1:Gii thiu chung Trn Minh Thái
2. Các thư vin lp trình ca Windows
SDK – Software Development Kit
Là b thư vin lp trình nn tng ca HĐH Windows.
Cung cp tt c các công c cn thiết để xây dng 1 ng dng trên
Windows.
Được s dng như là thư vin cơ s để to ra nhng thư vin cao cp hơn
trong nhng ngôn ng lp trình. VD: OWL ca BorlandC, MFC ca Visual
C++,…
Mt s thành phn cơ bn ca 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).
OWL – Object Windows Library:
Là b thư vin hướng đối tượng ca BorlandC++.
MFC – Microsoft Foundation Classes:
Là b thư vin hướng đối tượng ca Visual C++.
Mt ng dng trên Windows có th được viết bng:
Thư vin SDK.
Mt thư vin khác (OWL, MFC,…) phi hp vi SDK.
Các loi ng dng:
Win32 Console: ng dng 32 bits, vi giao din dng DOS command
line.
Bài ging: Lp trình C for Win ...............................................................................................Trang 3/69
Bài 1:Gii thiu chung Trn Minh Thái
Win32 (SDK): ng dng 32 bits, ch s dng thư vin SDK.
Win32 DLL: ng dng 32 bits, dng thư vin liên kết động (Dynamic –
Linked Library), s dng SDK.
Win32 LIB: ng dng 32 bits, dng thư vin liên kết tĩnh (Static –
Linked Library).
MFC EXE: ng dng 32 bits, s dng thư vin Microsoft Foundation
Class.
MFC DLL: ng dng 32 bits, dng thư vin liên kết động (Dynamic –
Linked Library), s dng MFC.
3. Các khái nim cơ bn
Message:
Trao đổi thông tin gia chương trình ng dng và h điu hành.
Th tc Window:
Được gi bi h thng để x lý các Message nhn được.
Hàng đợi Message:
Mi chương trình có 1 hàng đợi Message để cha các Message. Mi
chương trình có vòng lp Message.
Handle:
Mt giá tr 32 bits không du (unsigned) do HĐH to ra để làm định danh
cho mt đối tượng (ca s, file, vùng nh, menu,…).
ID (Identifier):
Mt giá tr nguyên do ng dng to ra để làm định danh cho 1 đối tượng
(menu item, control).
Instance:
Mt giá tr nguyên do HĐH to ra để định danh 1 th hin đang thc thi ca
ng dng.
Callback:
Thuc tính ca 1 hàm/ th tc s được gi bi HĐH, không phi bi ng
dng.
Bài ging: Lp trình C for Win ...............................................................................................Trang 4/69
Bài 1:Gii thiu chung Trn Minh Thái
4. Lp trình s kin (Even driven programming)
USER.EXE
Mouse
Driver
Keyboard
Driver
Phát sinh các s kin và thông đip
Qui trình x lí thông đip
System
Queue
System
Queue
Application
Queue
GetMessage()
TranslateMessage()
DispatchMessage()
Device driver Keyboard
DefWindowProc()
WindowProc()
Virtual Key & Scan code
Bài ging: Lp trình C for Win ...............................................................................................Trang 5/69