Lập trình , Thiết kế website, Auto Game Online

AutoIT tut 30: GUIRegisterMsg -Đăng ký một hàm-do-người-dùng-định-nghĩa cho Windows Message ID (WM_MSG) .

0
0
(0)

GUIRegisterMsg

Đăng ký một hàm-do-người-dùng-định-nghĩa cho Windows Message ID (WM_MSG) .

GUIRegisterMsg ( msgID, “function” )

Các tham số

msgID Định danh  thông điệp windows (Windows Message ID , Xem Appendix: Windows Message Codes).
functionTên của hàm sẽ được gọi khi thông điệp xuất hiện , sử dụng chuỗi rỗng để bỏ qua , không đăng ký.

Giá trị trả về

Th. Công :1
Hỏng :0

Chú ý

!!! Để hàm do bạn định nghĩa có thể làm việc được , cần gán cho nó tối đa 4 tham số , ngược lại có thể nó sẽ không được gọi !!!

Ví dụ

Func MyUserFunction($hWndGUI, $MsgID, $WParam, $LParam)

EndFunc


hoặc


Func MyUserFunction($hWndGUI, $MsgID)

EndFunc

Khi người dùng gọi hàm thì 4 tham số sẽ mang những giá trị sau :

Vị tríTham số Ý nghĩa
1hWndHandle của GUI mà thông điệp sẽ xuất hiện
2MsgĐịnh danh (ID) của  thông điệp Windows
3wParamTham số thông điệp đầu tiên (giá trị hex)
4lParamTham số thông điệp thứ hai (giá trị hex)

Ø       Có thể đăng ký tối đa 256 hàm cho các thông điệp windows

Ø       Theo mặc định , sau khi hàm người dùng kết thúc thì trình điều khiển thông điệp nội bộ của AutoIT sẽ tiếp tục làm việc. Điều đó sẽ không xảy ra nếu như lệnh Return trong hàm của bạn trả về một giá trị hoặc return mà không có giá trị theo sau.

Ø       !!! Nếu bạn muốn AutoIT chạy trình điều khiển nội bộ đối với một thông điệp , thì hàm-người-dùng nên trả về biến $GUI_RUNDEFMSG (trong thư viện GUIConstantsEx.au3) !!!

Ø       Ví dụ :  khi bạn muốn hàm trở về sớm hơn so với tiến trình kết thúc của nó và tiếp tục chạy trình điều khiển thông điệp nội bộ

Ø       Cẩn trọng : cản trở việc chạy một hàm-người-dùng đang thực thi một thông điệp cửa sổ với một lệnh như MsgBox() thì có thể đưa đến một cách chạy không mong đợi, hệ thống sẽ trở về nhanh như có thể !!!

Ø       Vài control có sử dụng các định danh thông điệp Windows đặc biệt , cho nên việc đăng ký chúng không có hiệu quả. Ví dụ như : WM_CHAR, WM_KEYDOWN, WM_KEYUP được dùng bởi control edit.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

Leave A Reply

Your email address will not be published.