www.HuaHongQuan.

com

Topic 1a – Giới thiệu cơ bản
Hôm nay mình sẽ viết về lập trình windows sử dụng bộ thư viện lập trình Windows API. Ngôn ngữ được dùng trong chủ đề này là C++. Đầu tiên, mình xin nêu ra một số khác biệt giữa lập trình Windows và DOS. Windows Xử lý theo sự kiện (event) dựa vào các thông điệp (message) Giao diện đồ họa Multi-tasking / multi-threads Hỗ trợ Multi CPU Tích hợp sẵn Multimedia Hỗ trợ 32 bit trở lên Hỗ trợ nhiều công nghệ DLL, OLE, DDE… Dos Thực hiện tuần tự theo chỉ định Giao diện Console Single task Single CPU Phải dùng các thư viện Multimedia riêng Ứng dụng 16 bits Không có

Chúng ta sẽ viết chương trình windows đầu tiên. Mục tiêu: Tạo ra 1 MessageBox và có chữ Hello World ở trong. Các bạn có thể theo dõi video ở link sau: http://youtu.be/eYMVCgzFoWU Bước 1: Mở visual Studio lên. Mình dùng phiên bản 2010. Bước 2: New Project > Visual C++ > WIN32 PROJECT. Điền tên vào Name > OK

www.HuaHongQuan.com Bước 3: Next > Empty Project > Finish Bước 4: Add 1 file mã nguồn vào Source Files ở Solution Explorer Bước 5: Gõ đoạn mã nguồn sau:
#include<Windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ MessageBox(NULL, TEXT("HELLO WORLD"), TEXT("HelloMsg"), 0); return 0; }

Bước 6: F5 và Xem kết quả

Chi tiết:
Header File:
WINDOWS.H là thư viện mà khi dùng sẽ include các Windows header khác . Một số header quan trọng như:      WINDEF.H : Basic type definitions (Khai báo kiểu cơ bản) WINNT.H : Type definition for Unicode support ( hỗ trợ Unicode) WINBASE.H Kernel functions WINUSER.H User Interface Functions WINGDI.H Graphics device interface functions

Khai báo:
Trong thư viện WINBASE.H thì được khai báo là: (xem tại http://msdn.microsoft.com/enus/library/ms633559.aspx)
int CALLBACK WinMain( _In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow );

Trong đó :  Đối số đầu tiên hInstance nghĩa là “instance handle”. Trong lập trình Win thì một handle là một số mà một ứng dụng dùng để xác định cái gì đó. Trong trường hợp này, handle dùng để xác định chương trình đang viết.

www.HuaHongQuan.com  Đối số thứ 2 là hPrevInstance thì trong Windows 32bit luôn là NULL.  Đối số thứ 3 là command line dùng để chạy chương trình. Một số ứng dụng dùng đối số này để load 1 file vào bộ nhớ khi chương trình khởi động.  Đối số thứ 4 dùng để biết chương trình sẽ hiển thị bình thường, maximized hay minimized.

MessageBox:
MessageBox dùng để hiển thị những “message” ngắn. Ví dụ như Hello World ở trên. Trong đó:      Đối số đầu tiên là một window handle. Chúng ta sẽ tìm hiểu về handle ở dưới. Đối số thứ 2 là đoạn chữ (string) sẽ hiện ở than của message box Đối số thứ 3 là tiêu đề của MessageBox Chú ý : Ở chương trình trên chúng ta bao đoạn chữ trong TEXT() để thuận tiện nếu muốn sử dụng unicode. Đối số thứ 4: là các hằng số bắt đầu bằng MB_. Các bạn có thể thử các đoạn code sau đây để biết về cách hoạt động của đối số này ( có trong file main.cpp tải kèm):
WORLD"), WORLD"), WORLD"), WORLD"), WORLD"), WORLD"), WORLD"), WORLD"), TEXT("HelloMsg"), TEXT("HelloMsg"), TEXT("HelloMsg"), TEXT("HelloMsg"), TEXT("HelloMsg"), TEXT("HelloMsg"), TEXT("HelloMsg"), TEXT("HelloMsg"), 0); MB_OK);//OK Button MB_OKCANCEL);//OK + Cancel Button MB_ABORTRETRYIGNORE); MB_YESNOCANCEL); MB_YESNO); MB_RETRYCANCEL); MB_DEFBUTTON2 | MB_DEFBUTTON3

MessageBox(NULL, TEXT("HELLO MessageBox(NULL, TEXT("HELLO MessageBox(NULL, TEXT("HELLO MessageBox(NULL, TEXT("HELLO MessageBox(NULL, TEXT("HELLO MessageBox(NULL, TEXT("HELLO MessageBox(NULL, TEXT("HELLO MessageBox(NULL, TEXT("HELLO |MB_ICONQUESTION);//OK Button

Sign up to vote on this title
UsefulNot useful