如何直接读取鼠标滚轮的信息(200分)

  • 主题发起人 主题发起人 SupermanTm
  • 开始时间 开始时间
S

SupermanTm

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序中的一个功能里要求直接接管鼠标的动作,由程序重新解释,我可以使用<br>GetCursorPos / SetCursorPos 取得鼠标的位移量,可是无法取得滚轮的动作,希望诸位高手不吝赐教
 
你可以通过拦截mouse的消息呀,在重载wndproc的过程里。
 
用鼠标对屏幕的AfterScroll()事件试试<br>无论鼠标移动,滚轮滚动都会触发这个事件.<br>
 
以下程序是本人在报表的画面中的一段程序代码,你可以参考看看 <br>procedure T????????.ApplicationEvents1Message(var Msg: tagMSG;<br>&nbsp; var Handled: Boolean);<br>Var i: SmallInt;<br>begin<br>&nbsp; &nbsp; //为了让鼠标能控制报表上下页<br>&nbsp; &nbsp; if Msg.message = WM_MOUSEWHEEL then<br>&nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; &nbsp; Msg.message := WM_KEYDOWN;<br>&nbsp; &nbsp; &nbsp; &nbsp; Msg.lParam := 0;<br>&nbsp; &nbsp; &nbsp; &nbsp; i := HiWord(Msg.wParam) ;<br>&nbsp; &nbsp; &nbsp; &nbsp;if i &gt; 0 then<br>&nbsp; &nbsp; &nbsp; &nbsp;Begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Msg.wParam := VK_UP;<br> VisualReport1.PreviousPage;<br> Edit1.Text := IntToStr(VisualReport1.PageNumber);<br><br> End else<br> Begin<br> Msg.wParam := VK_DOWN;<br> VisualReport1.NextPage;<br> Edit1.Text := IntToStr(VisualReport1.PageNumber);<br>&nbsp; &nbsp; &nbsp; &nbsp;End; &nbsp;<br>&nbsp; &nbsp; &nbsp; Handled := False;<br>&nbsp; &nbsp; end;<br><br>end;<br>
 
这问题我自己解决了,分平均分掉吧,:)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部