Delphi實現對鼠標上下滾動基礎消息的截獲並處理
前幾天有客戶提出需求:由於個人PC界面限制,有時候電子圖檔顯示不全,希望通過鼠標上下滾動用來控制電子圖檔的放大和縮小。
下面通過一個測試Demo來說明一下。
新建一個WinFrm應用程序,添加一個RzMemo、ApplicationEvents控件,如下所示。

添加ApplicationEvents控件的OnMessage事件,關鍵代碼如下:
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;
運行效果如下,當鼠標上下滾動時觸發相關消息:
綜上,我們就可以在兩個關鍵判斷處,添加自己想要實現的業務邏輯,從而實現對鼠標上下滾動基礎消息的截獲和二次處理。
作者:Jeremy.Wu
出處:https://www.cnblogs.com/jeremywucnblog/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
