WM_XXXX消息问题,高手进来帮帮忙吧

MMas 2008-06-24 12:12:25
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

TMYImage = class(TImage)
private
procedure WMMouseWheel(var Message: TWMMouseWheel); message WM_MOUSEWHEEL;
procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
procedure WMSize(var Message: TWMSize); message WM_SIZE;
end;

var
Form1: TForm1;
Image1: TMYImage;

implementation

{$R *.dfm}

procedure TMYImage.WMMouseWheel(var Message: TWMMouseWheel);
begin
beep;
end;

procedure TMYImage.WMLButtonDown(var Message: TWMLButtonDown);
begin
beep;
end;

procedure TMYImage.WMSize(var Message: TWMSize);
begin
showmessage('WMSize');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Image1:=TMYImage.Create(Self);
Image1.Parent:=self;
Image1.Align:=alClient;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Image1.Free;
end;

end.

以上代码,运行时,TWMLButtonDown正常;TWMMouseWheel左上方正常,右边和下边没有触发,但最大化后正常;TWMSize改变大小时根本没触发
问题:
 1.为什么TWMMouseWheel消息有肓区?如果解决啊?
 2.TWMSize何时,怎样才触发呢?
...全文
174 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bds248 2008-06-24
  • 打赏
  • 举报
回复
关于WM_SIZE可在你改变AIMAGE尺寸的时候加上一句Perform(WM_SIZE, 0, Longint(self));
anguangqing 2008-06-24
  • 打赏
  • 举报
回复
看你的代码,为什么不直接用窗体的事件?完全可以达到相同的效果。
fjf1107 2008-06-24
  • 打赏
  • 举报
回复
樓上的:樓主是想用消息實現,學習消息機制;

樓主說的問題,我也搞不清楚為什麼會出現這種情況。
etomahawk 2008-06-24
  • 打赏
  • 举报
回复
// 大小改变时,应当处理WM_WINDOWPOSCHANGED消息,从TGraphicControl继承下来的没有WM_SIZE
procedure WMWindowPosChanged(var Message: TWMWindowPosChanged); message WM_WINDOWPOSCHANGED;

// 在CM_MOUSEWHEEL消息中处理一下看看
procedure CMMouseWheel(var Message: TCMMouseWheel); message CM_MOUSEWHEEL;
bds248 2008-06-24
  • 打赏
  • 举报
回复
关于TWMMouseWheel可以在Form1的TWMMouseWheel判断鼠标是否在所要的范围内从而触发Image1的TWMMouseWheel。道理同上:
Perform(WM_MOUSEWHEEL, 0, Longint(self));

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧