我正在尝试使用 Delphi 7 中的 TApplicationEvents.OnMessage 事件检测鼠标滚轮的移动(按下 CTRL 键)。这是我正在使用的代码:
if Msg.message = WM_MOUSEWHEEL then begin
if Word(Msg.wParam) = MK_CONTROL then begin
Edit1.Text := IntToStr(HiWord(Msg.wParam));
if HiWord(Msg.wParam) < 0 then begin
IncZoom;
end else begin
DecZoom;
end;
end;
end;
根据 MSDN 资源 ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms645617(v=vs.85).aspx),HiWord的 (Msg.wParam) 为负值表示轮子已经向后移动,朝向用户。
问题是,当车轮向后移动时,我永远不会收到负值。当我向后滚动时,我得到一个值 120。当我向前滚动时,我得到 65416。
我究竟做错了什么?