我自己写了一个控件,如下:
TCustomDraw = class(TCustomControl)
private
procedure CMMouseWheel(var Message: TCMMouseWheel); message CM_MOUSEWHEEL;
procedure WMMouseWheel(var Message: TWMMouseWheel); message WM_MOUSEWHEEL;
end;procedure TCustomDraw.WMMouseWheel(var Message: TWMMouseWheel);
begin
MoveToMapCenter(Message.WheelDelta);//根据滚动的上下方向缩放地图
end;procedure TCustomDraw.CMMouseWheel(var Message: TCMMouseWheel);
begin
MoveToMapCenter(Message.WheelDelta);//根据滚动的上下方向缩放地图
end;我想在控件内利用滚轮进行地图的缩放,可是当我利用VCL的消息截取机制通过上述方式截取消息时,程序却没有任何反映,即我的截取消息是不成功的,单步跟踪也执行不到断点处,请问这是为何啊?我应该如何实现我的需求呢.
TCustomDraw = class(TCustomControl)
private
procedure CMMouseWheel(var Message: TCMMouseWheel); message CM_MOUSEWHEEL;
procedure WMMouseWheel(var Message: TWMMouseWheel); message WM_MOUSEWHEEL;
end;procedure TCustomDraw.WMMouseWheel(var Message: TWMMouseWheel);
begin
MoveToMapCenter(Message.WheelDelta);//根据滚动的上下方向缩放地图
end;procedure TCustomDraw.CMMouseWheel(var Message: TCMMouseWheel);
begin
MoveToMapCenter(Message.WheelDelta);//根据滚动的上下方向缩放地图
end;我想在控件内利用滚轮进行地图的缩放,可是当我利用VCL的消息截取机制通过上述方式截取消息时,程序却没有任何反映,即我的截取消息是不成功的,单步跟踪也执行不到断点处,请问这是为何啊?我应该如何实现我的需求呢.
解决方案 »
- 请教文件传阅功能的实现方法
- 奇怪!! 关联文件后,双击打开关联的文件,在exe中居然参数出错,路径中的空格居然把文件路径分成两个参数?? 在线等
- 请问有人做过:通过COM口衍射成 IP 地址,然后对多个 或 四百个点(下位机)进行读写数据的,有吗?
- 有没有没有睡的兄弟呀,看看这个是在哪里加载呀:ReadVirtualMemory!在线等。。。。
- 跪求delphi5开发人员指南
- 怎么样用delphi新建一个sqlserver2000数据库的用户,并设定他的密码,如果可能的话还设定他的权限。
- 怎样防止文件被删除?
- 有关exitwindowex的问题
- 简单问题:如何刷新屏幕
- 注册表的问题,如何导入注册表文件?
- 一个关于多用户文件传输的问题
- 怎么把execl导入Access数据库?
1.自定义变量用来标记老的消息处理方法:
OldGrid1Wnd:TWndMethod;
2.自定义新的消息处理函数:
a声明 Procedure newdbgrid1wnd(var message:Tmessage);
b定义
procedure TForm9.newdbgrid1wnd(var message:tmessage);
var
isneg:boolean;
begin
if message.msg=wm_mousewheel then
begin
isneg:=short(message.WParamHi)<0;
if isneg then
begin
dbgrid1.DataSource.DataSet.MoveBy(1);
end //if..end;
else
dbgrid1.DataSource.DataSet.MoveBy(-1);
begin
end;//if..else..end;
end
else
begin
oldgrid1wnd(message);
end;//if...else..en;
end;