D7+MO,在鼠标滚轴事件中,结果无论按下Ctrl键还是Shift键,滚动鼠标时,都执行相同的语句,为什么?
在鼠标滚轴事件中,分别对按下鼠标键 Ctrl 和 Shift 进行处理,结果无论按下Ctrl键还是Shift键,滚动鼠标时,都执行语句“缩小地图”,为什么?谁碰到过。
单步跟踪发现 变量 shift的值是正确的,即按下Shift时,shift=[ssShift].
procedure TFormManager.FormMouseWheelUp(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
var
rect : Rectangle;
begin
if Shift = [ssCtrl] then
begin // 如果Ctrl键按下
rect := MapLarge.Extent;
rect.ScaleRectangle(variant(0.95)); // 缩小地图
MapLarge.Extent := rect;
end
else if Shift = [ssShift] then
begin // 如果Shift键按下,右移地图
MapLarge.CenterAt(MapLarge.Extent.Center.X+0.5, MapLarge.Extent.Center.Y);
end;
end;