TEventMSG的疑問 |
答題得分者是:dllee
|
kin031021
一般會員 ![]() ![]() 發表:5 回覆:4 積分:1 註冊:2007-09-01 發送簡訊給我 |
請問各位大哥兩個問題
1、TEventMSG的用法? 2、還有pEventMSG(lParam)^的意思?為甚麼前面要加個p和後面加^ <textarea class="delphi" rows="10" cols="60" name="code">function HookProc(iCode:Integer;wParam:wParam;lParam:lParam):LRESULT;stdcall; var msg:TEventMsg; Count,i : integer; KeyState1 : TKeyboardState; AryChar : array[0..1] of char; begin Result:=0; if iCode < 0 then Result := CallNextHookEx(hHook,iCode,wParam,lParam) else if icode=HC_ACTION then begin msg:=pEventMSG(lParam)^; with Form1 do begin if msg.message=WM_MOUSEMOVE then Label2.Caption := inttostr(msg.paramL) ',' inttostr(msg.paramH); if msg.message=WM_LBUTTONDOWN then Memo1.Lines.add({inttostr(msg.hwnd) ':' }'L:' inttostr(msg.paramL) ',' inttostr(msg.paramH) #13); if msg.message=WM_RBUTTONDOWN then Memo1.Lines.add({inttostr(msg.hwnd) ':' }'R:' inttostr(msg.paramL) ',' inttostr(msg.paramH) #13); if msg.message=WM_KEYDOWN then begin GetKeyboardState(KeyState1); Count :=ToAscii(msg.paramL,msg.paramH,KeyState1,AryChar,0); i := ord(AryChar[0]); if Count=1 then Memo2.Text := Memo2.Text chr(i); end; end; end; end;</textarea> |
dllee
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
TEventMSG 是一個資料結構,存 Message 的內容及觸發時間/視窗 Handle
pEventMSG(lParam)^ 是把 lParam 所指到的位址,轉換成 TEventMSG 型態 pEventMSG 算是 TEventMSG 的指標型態,以下是 BCB 的宣告: winuser.h /* * Message Structure used in Journaling */ typedef struct tagEVENTMSG { UINT message; UINT paramL; UINT paramH; DWORD time; HWND hwnd; } EVENTMSG, *PEVENTMSGMSG, NEAR *NPEVENTMSGMSG, FAR *LPEVENTMSGMSG; \vcl\windows.hpp typedef tagEVENTMSG *PEventMsg; typedef tagEVENTMSG TEventMsg; 可以看到 PEventMsg 就是一個指標,它指向 TEventMsg 的資料型態。 以您的問題 1、TEventMSG 的用法? 基本上是您要了解 HC_ACTION 所攔的是什麼? lParam/wParam 存的內容是什麼?如何取出其內容?TEventMSG 本身只是存資料用, 沒有什麼用法,完全是看您如何去用它。
------
http://www.ViewMove.com |
kin031021
一般會員 ![]() ![]() 發表:5 回覆:4 積分:1 註冊:2007-09-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |