Lập trình Win32 API
vncoding.net Page 3
Parameter :
lpClassName: tên đăng kí với HĐH Windows
lpWindowName: tên sẽ hiển thị lên cửa sổ
dwStyle:
x,y: hoành độ, tung độ để hiển thị cửa sổ
nWidth: độ rộng của cửa sổ
nHeight: độ cao của cửa sổ
hWndParent: handle tới cửa sổ cha
hMenu: handle tới các menu
hInstance: handle tới các thể hiện của chương trình
lpParam:
Return :Handle tới cửa sổ vừa mới được tạo.
2.2 Message
- Hàm WinMain() tạo ra 1 vòng lặp thông điệp(message loop). Nó là vòng lặp vô hạn, chạy
trong suốt vòng đời của ứng dụng. Message loop là 1 cấu trúc đợi và phát các sự kiện hoặc
các message trong chương trình. HĐH Windows giao tiếp sử dụng các message.
- Message là giá trị integer chỉ ra một sự kiện cụ thể. VD: Khi chúng ta click vào button,
thay đổi kích thước cửa sổ hoặc đóng ứng dụng,…v.v. Thì sẽ có rất nhiều message được tạo
ra. Các message này có thể không được xử lí đồng thời, mà các message này sẽ được đưa
vào 1 hàng đợi thông điệp (message queue) và đợi để xử lí lần lượt từng message một.
- Hàm GetMessage() được sử dụng để lấy các bản tin từ message queue.
- Hàm TranslateMessage() translate virtual-key message thành character message.
( HĐH Windows tạo ra các Virtual-key message khi người dùng ấn các phím trên key-board
(nhưng không phải là giá trị character). Ứng dụng muốn lấy được message này thì cần phải
có hàm để translate virtual-key message thành character message).
- Hàm DispatchMessage() dùng để phát message tới window produce.
2.3 Window Procedure
Code:
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM
lParam);
- Hàm WindowProc() sẽ nhận và xử lí các message gửi đến. Các message nào không được
xử lí trong hàm này sẽ được xử lí trong hàm DefWindowProc() của HĐH Windows.
- hwnd: handle to the windows
- uMsg:
- wParam, lParam: chứa các thông tin về message.
2.4 Các Message cơ bản
WM_CHAR Khi nhập 1 kí tự từ bàn phím
WM_COMMAND Khi lựa chọn các item trong popup menu
WM_CREAT Khi windows được tạo
WM_DESTROY Khi windows bị destroy
WM_LBUTTONDOWN Khi click chuột trái
WM_RBUTTONDOWN Khi click chuột phải
WM_MOUSEMOVE Khi di chuyển con trỏ chuột
WM_PAINT Khi windows được vẽ lại