请教: 怎样支持鼠标滚轮? ( 积分: 100 )

  • 主题发起人 主题发起人 fly_qqq
  • 开始时间 开始时间
F

fly_qqq

Unregistered / Unconfirmed
GUEST, unregistred user!
我建立了个表单,但是组件太多了,不得不加了个下拉条。<br>但是当运行时要看下边的东西时只有鼠标点着下拉条往下拉才能看到,不能像浏览网页那样用鼠标的滚轮上下滚动,请问怎样支持鼠标滚轮?
 
我建立了个表单,但是组件太多了,不得不加了个下拉条。<br>但是当运行时要看下边的东西时只有鼠标点着下拉条往下拉才能看到,不能像浏览网页那样用鼠标的滚轮上下滚动,请问怎样支持鼠标滚轮?
 
发送WM_MouseWheel消息
 
如,在DBGrid里面支持鼠标滚轮:<br>procedure TfrmMain.OnMouseWheel(var Msg: TMsg; var Handled: Boolean);<br>begin<br> &nbsp;if Msg.message = WM_MouseWheel then<br> &nbsp;begin<br> &nbsp; &nbsp;if Msg.wParam &gt; 0 then<br> &nbsp; &nbsp; begin<br> &nbsp; &nbsp; &nbsp; if DBBasicInfo.Focused then<br> &nbsp; &nbsp; &nbsp; &nbsp; SendMessage(DBBasicInfo.Handle, WM_VSCROLL, SB_PAGEUP, 0);<br> &nbsp; &nbsp; end<br> &nbsp; &nbsp;else<br> &nbsp; &nbsp; begin<br> &nbsp; &nbsp; &nbsp; if DBBasicInfo.Focused then<br> &nbsp; &nbsp; &nbsp; &nbsp; SendMessage(DBBasicInfo.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);<br> &nbsp; &nbsp; end;<br> &nbsp; &nbsp;Handled:= True;<br> &nbsp;end;<br>end;
 
那个滚动条在一个from里面,因为太多了所以from自动加上去的~~<br> &nbsp;我想鼠标滚轮上下滚动,from里边的内容也自动做相应的滚动,问题是现在按鼠标滚轮上下滚动时该from没反映,只有把滚动条点中上下拖动from里边的内容才自动做相应的滚动。
 
重载这两个:<br>function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean;<br>function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean;<br>也可以搞定的
 
多人接受答案了。
 
后退
顶部