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 thao tác với FTP server theo cách thủ công
- [Game Advanced Tetris và mã nguồn] - Những vấn đề xoay quanh CFW, API, MFC, CLR
- string, char, Unicode char trong VC++
- Tiệm Sửa PC Bàn Uy Tín Q. 10 Tại Nhà
- Tạo Thread và đa xử lý trong 1 chương trình
- Hướng dẫn Tạo Hiệu Ứng Load Dialog
- Dịch Vụ Cài Phần Mềm AutoCad Nhanh Chóng Quận 2 Tận Nơi
- [Interview] Jeff prosise-the author of the bestseller "Programming Windows in MFC"
- Cửa Hàng Cài Phần Mềm Cad Nhanh Chóng Tại Nhà Quận 6
- Kiến thức cơ bản về Winpcap
-
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ẻ.
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...