Chủ đề: Một số hàm về Message
-
24-02-2008, 05:01 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Một số hàm về Message
PostMessage
Mã:BOOL PostMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
Do đó, khi gởi 1 msg mà ko cần return, ta xài hàm này.
SendMessage
Mã:LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
Và trả về giá trị. Chúng ta xài khi cần giá trị return của nó.
PeekMessage
Mã:BOOL PeekMessage( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg );
Nó return ngay.
Có 1 thông số là wRemoveMsg
PM_NOREMOVE //Không remove msg sau khi gọi hàm, nó vẫn nằm trong hàng đợi
PM_REMOVE //Ngược lại
Ngoài ra, ta có thể chỉ định nhận các msg loại nào
PM_QS_INPUT //Keyboard hay Mouse
PM_QS_PAINT //Paint
GetMessage
Mã:BOOL GetMessage( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax );
Còn tiếp...View more random threads:
- Hướng dẫn làm game bằng C/C++
- Hướng dẫn viết một chương trình Sniffer
- Hiểu COM là gì?
- Tìm hiểu về thư viện liên kết động trên Win32 API
- Structured Exception Handling (SEH) và C++ Exception Handling khác nhau như thế nào
- Ưu điểm Lập Trình Multi - core
- Cách tạo thư viện DLL trong VC++ 6.0
- Inject Code Cave
- Inject Code on the fly by benina
- Những điều Cấm Kị Khi sử dụng DLL
-
07-09-2008, 02:57 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mã:TranslateMessage(&msg); DispatchMessage(&msg);
Mã:MSG msg; BOOL bRet; //vòng lặp đón và xử lý các message while((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) { TranslateMessage(&msg); DispatchMessage(&msg); }
-
07-09-2008, 05:44 PM #3Silver member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Một ứng dụng nhận các thông điệp từ hàng đợi thông điệp bằng cách thực thi một đoạn mã sau:
Mã:while ( GetMessage(&msg, NULL, 0 ,0) ) { TranslateMessage (&msg); DispatchMessage (&msg); }
Ý nghĩa của các trường trong cấu trúc MSG
hwnd : Định danh của cửa sỗ mà thông điệp phát sinh.
message : Định danh của thông điệp, ví dụ như thông điệp phát sinh khi bấm nút chuột trái là WM_LBUTTONDOWN có giá trị 0x0201.
wParam : Tham số 32-bit chứa các thông tin phụ thuộc vào từng thông điệp cụ thể.
lParam : Tham số 32-bit phụ thuộc vào thông điệp.
time : Thời gian đặt thông điệp trong hàng đợi.
pt : Tọa độ của chuột khi đặt thông điệp vào hàng đợi
Hàm GetMessage sẽ trả về 0 nếu msg chứa thông điệp có định danh WM_QUIT (0x0012), khi đó vòng lặp thông điệp ngưng và ứng dụng kết thúc. Ngược lại thì hàm sẽ trả về một giá trị khác 0 với các thông điệp khác.
-
28-01-2010, 05:56 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Nói cho cùng thì nó là một vòng lặp để lấy thông điệp từ hàng đợi của ứng dụng và phân phát cho thủ tục Window xử lý, vòng lặp này chấm dứt khi thông điệp "qua" nó là WM_QUIT (Khi chúng ta "tắt" ứng dụng tạo ra thông điệp WM_DESTROY, thông điệp này sẽ gọi hàm PostQuitMessage đặt thông điệp WM_QUIT vào hàng đợi). Đơn giản là thế, còn bạn muốn khai thác chúng như thế nào thôi! Chúc vui vẻ.
Dưới ánh nắng mặt trời đang lên, những đống pallet nhựa An Giang trải dài mênh mông như những bức tranh tự nhiên đầy sắc màu. Mỗi chiếc pallet nhựa không chỉ là một vật dụng thông thường mà còn là...
Pallet nhựa An Giang giao hàng...