Delphi實現對鼠標上下滾動基礎消息的截獲並處理測試
前幾天有客戶提出需求:因爲我的PC界面限制,有時候電子圖檔顯示不全,但願經過鼠標上下滾動用來控制電子圖檔的放大和縮小。spa
下面經過一個測試Demo來講明一下。code
新建一個WinFrm應用程序,添加一個RzMemo、ApplicationEvents控件,以下所示。orm
添加ApplicationEvents控件的OnMessage事件,關鍵代碼以下:blog
1 procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; 2 var Handled: Boolean); 3 begin 4 //在RzMemo1上發生鼠標滾輪事件時 5 if (RzMemo1.Focused) and (Msg.message = WM_MOUSEWHEEL) then 6 begin 7 if Msg.wParam > 0 then //上滾 8 begin 9 RzMemo1.Lines.Add('上滾+1 - ' + FormatDateTime('YYYY-MM-DD hh:mm:ss zzz', Now())); 10 end 11 else //下滾 12 begin 13 RzMemo1.Lines.Add('下滾-1 - ' + FormatDateTime('YYYY-MM-DD hh:mm:ss zzz', Now())); 14 end; 15 Handled := True; //消息已經處理完畢 16 end; 17 end;
運行效果以下,當鼠標上下滾動時觸發相關消息:事件
綜上,咱們就能夠在兩個關鍵判斷處,添加本身想要實現的業務邏輯,從而實現對鼠標上下滾動基礎消息的截獲和二次處理。io