Professional Documents
Culture Documents
Lập Trình C Trên Windows
Lập Trình C Trên Windows
Bt u vit chng trinh bng cach vao muc File New va chon tab Project, chon muc Win32 Application Go vao Project Name la Vidu1, chon muc Location chi ti th muc cha cac ng dung a tao ra bc 1.
-1-
-2-
Chon OK Sau cac bc o chung ta a tao thanh mt Project (d an mi chng trinh vit trn b Visual C++ la mt d an, chung ta hiu nm na la cach kim soat cac file chng trinh gm cac file ma ngun, file d liu, vn vn cua Visual C++) rng, cha co file ma ngun hay tai nguyn (resource cac file d liu ) nao ca.
-3-
Lp trinh C trn Windows Vao muc Project Add to Project New va chon muc C++ Source File trong tab Files, go vao phn File name la vidu1.c, sau o nhn OK.
Khi o ca s chng trinh se la file vidu1.c chung ta co th soan thao ni dung cua file nay:
-4-
// Step 4: the Window Procedure LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CLOSE: DestroyWindow(hwnd);
-5-
Nhp chut vao biu tng ia mm ghi lai file vidu1.c. Nhn t hp phim Ctrl+F7 dich file vidu1.c (chi dich file nay ch khng lin kt tao thanh chng trinh chay c). Nu co li vi du nh ch const go sai thanh cnst thi nhp up chut ln thng bao li chay ti dong li va sa:
-6-
Lp trinh C trn Windows Nu khng co li gi trinh bin dich se bao la 0 errors va 0 warnings. Nhn phim F5 hoc nhp chut ln biu tng du chm than phn dich chng trinh thanh file chay, trinh bin dich se lin kt vi cac th vin h thng tao thanh file vidu1.exe trong th muc debug di th muc Vidu1 (cha ng dung) va chay file o. Kt qua chng trinh nh sau:
Hay thay cac tham s: COLOR_WINDOW+1 thanh COLOR_WINDOW, Tieu de cua cua so thanh Vi du 1: chuong trinh don gian va kich thc ca s t 240, 120 thanh cac kich thc khac (vi du nh CW_USEDEFAULT) va bin dich, chay th. ong Visual C++. Xoa th muc Debug trong th muc Vidu1 M lai ng dung a vit bng cach vao th muc Vidu1 nhp up chut ln file Vidu1.dsw, dich va chay lai chng trinh. Giai thich: ham MessageBox() la ham tao thanh mt thng bao (li, xac nhn, thng tin, canh bao) cho ngi dung. 4. Thay i chng trinh Vidu1 a vit phn 3 tao thanh chng trinh Vidu2 co thm cac thao tac x ly n gian cac thng ip nhn chut nh sau: Chay Visual C++ 6.0 Tao mt d an cho mt ng dung mi, t tn d an la Vidu2 (khi o mt th muc Vidu2 se c tao ra tai th muc Lap trinh C tren Windows). Copy file vidu1.c sang th muc Vidu2 va i tn thanh vidu2.c Vao muc Project Add to Project Files, chon file vidu2.c va OK.
-7-
Sa lai ni dung cua ham WndProc() thanh nh sau: LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_LBUTTONDOWN: MessageBox(NULL, "Left button click!", "Mouse Click!", MB_ICONINFORMATION | MB_OK); break; case WM_RBUTTONDOWN: { char szFileName[MAX_PATH];
-8-
Lp trinh C trn Windows HINSTANCE hInstance = GetModuleHandle("firefox"); GetModuleFileName(hInstance, szFileName, MAX_PATH); MessageBox(hwnd, szFileName, "This program is:", MB_ICONINFORMATION); } break; case WM_MBUTTONDOWN: MessageBox(NULL, "Middle button click!", "Mouse Click!", MB_ICONINFORMATION | MB_OK); break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } Ghi lai file vidu2.c. Bin dich va chay chng trinh. Giai thich: MAX_PATH la mt macro (kiu nh hng define) thuc windows.h inh nghia dai ti a cua mt xu cha dai ng dn ti mt file trn windows. Ham API GetModuleHandle() vi tham s la NULL thi kt qua tra v se la handle tro ti file c s dung tao ra tin trinh a goi ham, o chinh xac la cai ma chung ta cn goi ham GetModuleFileName(). Va do o chung ta co cu lnh:
HINSTANCE hInstance = GetModuleHandle(NULL);
MB_OK
Ham API GetModuleFileName() tra v ng dn ti chng trinh tham chiu bi tham s th nht khi goi ham, ng dn o c cha tham s th hai (mt xu). Trong vi du 2 chung ta a t x ly cac thng ip nhn chut, trong vi du 1 cac thng ip nay do ham DefWindowProc() thc hin (ng thi no cung kim lun cac thng ip nh thay i kich thc ca s, minimize, maximize vn vn). Chu y: th muc Vidu1 (hoc Vidu2) tng ng la cac chng trinh c lp, copy cac ng dung nay chung ta nn xoa kt qua bin dich chng trinh (th muc Debug) va copy ca th muc Vidu1. m lai mt ng dung chung ta vao th muc cha ng dung va m file co phn tn m rng la dsw.
-9-