delphi:父窗体是MDIForm,一个子窗体是MDIChild,其中子窗体中有个过程Procedure OnMouseWheel。

ProcedureOnMouseWheel(VarMsg:TMsg;varHandled:Boolean);但是子窗体的OnCreate事件里面好像写applicatio... Procedure OnMouseWheel(Var Msg: TMsg; var Handled: Boolean);但是子窗体的OnCreate事件里面好像写application.OnMessage := OnMouseWheel,就出错了。应该怎么写。(出错是access violation什么的)
那个错误是当子窗体关闭的时候出现的。
展开
 我来答
RedBaronVIP
2013-01-02 · TA获得超过1147个赞
知道小有建树答主
回答量:655
采纳率:0%
帮助的人:244万
展开全部
1、感觉是你OnMouseWheel的内容写的有问题。application.OnMessage := OnMouseWheel,你这么一写,Application就按照你OnMouseWheel定义的消息过滤方式来处理消息了。
2、不明白你一个响应鼠标滚轮的小小事件,用得着动用application.OnMessage么?看来Delphi屏蔽消息循环的弱智做法,害了好多人。
type
TForm1 = class(TMDIChild)
Panel1: TPanel;
private
procedure WMMouseWheel(var Message: TWMMouseWheel);
message WM_MOUSEWHEEL;
public
{ Public declarations }
end;

procedure TForm1.WMMouseWheel(var Message: TWMMouseWheel);
begin
if Message.WheelDelta > 0 then
//响应向前滚动
else //响应向后滚动;
end;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式