Professional Documents
Culture Documents
C4W - Bai 01
C4W - Bai 01
LP TRNH WINDOWS
Mc tiu
Mn hc cung cp cho sinh vin kin thc v phng php lp trnh trn mi trng Windows
C ch qun l chng trnh v x l thng ip trn MS Windows Lp trnh giao din ha - ngi dng (GUI) C ch giao tip thit b ha (GDI) C ch qun l b nh, tp tin. Mn hc ny trnh by phng php lp trnh API trn Windows 32 v k thut lp trnh MFC vi ngn ng minh ha l Visual C++ 6.0
Mc tiu
To cho sinh vin mt nn tng trong vic tip thu cc ngn ng lp trnh cp cao khc trn Windows nh: Visual Basic, Delphi, C++ Builder, C#, Visual basic.Net, J Builder, Java... To cho sinh vin mt kin thc c bn c th t nghin cu tip cc vn khc trong vic lp trnh trn Windows nh: DDE, OLE, giao tip vi thit b ngoi vi, ...
K nng
S dng c cng c Visual C++
Xy dng c ng dng ha Xy dng c ng dng qun l tng tc vi CSDL SQL Server 2000 Xy dng c ng dng tch hp mt s Third-Party Component
Mt s ng dng minh ha
Mt s ng dng lp trnh c bn nh:
My tnh b ti in thoi Chng trnh nghe nhc
Mt s ng dng minh ha
ng dng m phng thut ton
Cu trc d liu: mng, danh sch lin kt, cy nh phn, L thuyt th
Bi tp project
Bi tp project 1
Ni dung: Lp trnh cn bn, xy dng ng dng tng t nh: Paint, Calculator, Telephone, Kin thc lin quan: Dialogs, Menu, Toolbar, GDI,
Bi tp project 2
Ni dung: Lp trnh c s d liu C s d liu: Access 2003 hoc SQL Server 2000 Report: Crystal Report, C1Report,
Np bi tp project
Bi tp project 1
Np vo gia hc k Sinh vin np bi cho lp trng
Bi tp project 2
Np vo cui hc k, trc khi thi thc hnh 1 tun. Sinh vin np bi cho lp trng
Bi tp min thi
Ni dung
Bo co vit m t ng dng theo mu qui nh CD chng trnh c t chc theo mu qui nh
Np bi
Thi gian: sinh vin np bi vo cui hc k, trc khi thi thc hnh 2 tun. Np bi trc tip cho gio vin l thuyt
LP TRNH WINDOWS
NI DUNG
Mt s im khc bit gia lp trnh Windows & DOS Mt s khi nim c bn Lp trnh s kin (Even driven programming) Cc thnh phn giao din ha GUI Ti nguyn ca ng dng (Resource) Th vin lp trnh Windows M hnh lp trnh Windows Mt chng trnh tng qut xy dng trn Win API
NI DUNG
Mt s im khc bit gia lp trnh Windows & DOS Mt s khi nim c bn Lp trnh s kin (Even driven programming) Cc thnh phn giao din ha GUI Ti nguyn ca ng dng (Resource) Th vin lp trnh Windows M hnh lp trnh Windows Mt chng trnh tng qut xy dng trn Win API
Tch hp sn Multimedia
WINDOWS
Lp trnh s kin da vo thng ip (message) Multi-tasking Multi CPU Tch hp sn Multimedia H tr 32 bits hoc hn na H tr nhiu cng ngh DLL, COM, DDE, OLE
Mt s khi nim c bn
Khi nim Din gii Mt gi tr 32bits khng du (unsigned) do HH to ra lm nh danh cho 1 i tng (file, ca s, vng nh, menu, toolbar) Mt gi tr nguyn do ng dng to ra lm nh danh cho 1 i tng (menu item, tool button, control,) Mt gi tr nguyn do HH to ra nh danh cho 1 th hin ang thc thi ca ng dng Thuc tnh ca mt hm/th tc s c gi bi HH, khng phi bi ng dng Th vin th tc/hm, lp i tng c xy dng sn bi window v cc hng khc
NI DUNG
Mt s im khc bit gia lp trnh Windows & DOS Mt s khi nim c bn Lp trnh s kin (Even driven programming) Cc thnh phn giao din ha GUI Ti nguyn ca ng dng (Resource) Th vin lp trnh Windows M hnh lp trnh Windows Mt chng trnh tng qut xy dng trn Win API
S kin v thng ip
Keyboard
Device driver
Other device
S kin v x l thng ip
WinMain
Window Procedure
NI DUNG
Mt s im khc bit gia lp trnh Windows & DOS Mt s khi nim c bn Lp trnh s kin (Even driven programming) Cc thnh phn giao din ha GUI Ti nguyn ca ng dng (Resource) Th vin lp trnh Windows M hnh lp trnh Windows Mt chng trnh tng qut xy dng trn Win API
Dialog
SDI
MDI
Calculator
Paint
Workflow Editor
Child Window
Menu bar
Status bar
Scroll bar
GUI Controls
Property sheet Static text Combo box (Edit text + List box Drop down list Frame Check box
Push button
Push button
GUI Controls
Property sheet Check box
Static text
Image
Push button
Edit text
Push button
GUI Controls
Menu Title bar Tool bar
Tree View
Combo Box
Scroll bar
Status bar
List view
NI DUNG
Mt s im khc bit gia lp trnh Windows & DOS Mt s khi nim c bn Lp trnh s kin (Even driven programming) Cc thnh phn giao din ha GUI Ti nguyn ca ng dng (Resource) Th vin lp trnh Windows M hnh lp trnh Windows Mt chng trnh tng qut xy dng trn Win API
Resource Compiler
OBJ files
Linker
.EXE
Linker
Demo
Demo
Din gii
Bng m t phm tt (Hot- key)
NI DUNG
Mt s im khc bit gia lp trnh Windows & DOS Mt s khi nim c bn Lp trnh s kin (Even driven programming) Cc thnh phn giao din ha GUI Ti nguyn ca ng dng (Resource) Th vin lp trnh Windows M hnh lp trnh Windows Mt chng trnh tng qut xy dng trn Win API
http://msdn.microsoft.com/library/default.asp
NI DUNG
Mt s im khc bit gia lp trnh Windows & DOS Mt s khi nim c bn Lp trnh s kin (Even driven programming) Cc thnh phn giao din ha GUI Ti nguyn ca ng dng (Resource) Th vin lp trnh Windows M hnh lp trnh Windows Mt chng trnh tng qut xy dng trn Win API
WinMain
Window Procedure
Khai bo lp ca s
WNDCLASS wc; HWND hwnd; MSG msg; wc.style = 0; // Class style wc.lpfnWndProc = (WNDPROC) WndProc; // Window procedure address wc.cbClsExtra = 0; // Class extra bytes wc.cbWndExtra = 0; // Window extra bytes wc.hInstance = hInstance; // Instance handle wc.hIcon = LoadIcon (NULL, IDI_WINLOGO); // Icon handle wc.hCursor = LoadCursor (NULL, IDC_ARROW); // Cursor handle wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1); // Background color wc.lpszMenuName = NULL; // Menu name wc.lpszClassName = "MyWndClass"; // WNDCLASS name
Cu trc WNDCLASS
typedef struct WNDCLASS { UINT int int HICON HCURSOR HBRUSH LPCTSTR LPCTSTR style; cbClsExtra; cbWndExtra; hIcon; hCursor; hbrBackground ; lpszMenuName; lpszClassName; WNDPROC lpfnWndProc;
HINSTANCE hInstance;
} WNDCLASS, *PWNDCLASS;
Cu trc WNDCLASS
Thuc tnh Style lpfnWndProc cbClsExtra cbWndExtra hInstance hIcon hCursor hbrBackground lpszMenuName lpszClassName
Kiu dng ca lp Hm tip nhn v x l thng ip S byte dnh ring cho class (<=40 bytes) s byte dnh ring cho mi ca s thuc class (<=40 bytes) Instance ca ng dng thc hin vic ng k class Handle ca icon, xc nh biu tng ca ca s Handle ca cursor, xc nh dng cursor trong vng client Handle ca brush, xc nh cch t vng client; +1 nu mun s dng mu mc nh ca h thng. V d: COLOR_BACKGRAOUND + 1 Tn menu bar, chui kt thc bng 0 Tn lp, chui kt thc bng 0
ngha
ng k v to lp lp ca s
RegisterClass (&wc); hwnd = CreateWindow ( "MyWndClass", // WNDCLASS name "SDK Application", // Window title WS_OVERLAPPEDWINDOW, // Window style CW_USEDEFAULT, // Horizontal position CW_USEDEFAULT, // Vertical position CW_USEDEFAULT, // Initial width CW_USEDEFAULT, // Initial height HWND_DESKTOP, // Handle of parent window NULL, // Menu handle hInstance, // Application's instance handle NULL // Window-creation data );
Hm x l Message ca ca s
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; switch (message) { case WM_PAINT: hdc = BeginPaint (hwnd, &ps); Ellipse (hdc, 0, 0, 200, 100); EndPaint (hwnd, &ps); return 0; case WM_DESTROY: PostQuitMessage (0); return 0; } return DefWindowProc (hwnd, message, wParam, lParam); }
Th mc lu project