delphi中Message消息的使用方法a
来源:百度文库 编辑:神马文学网 时间:2024/04/29 19:19:23
原文链接:http://blog.csdn.net/delphi1234/archive/2008/02/20/2110083.aspx
unit Unit1;
interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;constWM_ME=WM_USER+100; //自定义消息;typeTForm1 = class(TForm) Button1: TButton;procedure Button1Click(Sender: TObject);//第一种消息处理方式; 只能处理常量消息; procedure wmme(var message:TMessage);message WM_ME; //自定义消息处理过程,专门处理WM_ME消息; private { Private declarations }public{ Public declarations }//第二种消息处理方式;可能处理常量或变量消息;procedure WndProc(var message:TMessage);override; //重载窗口消息过程//第三种消息处理方式 procedure WMCommand(var Message: TWMCommand); message WM_COMMAND; //命令消息处理过程end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin SendMessage(Handle,WM_ME,0,0); //发送消息WM_ME ; 消息先由WndProc处理,再交给wmme处理;end;procedure TForm1.WMCommand(var Message: TWMCommand);begin //第三种消息处理方式if Message.NotifyCode = BN_CLICKED thenif FindControl(Message.Ctl) = Button1 then showmessage(‘点击了Button1’);inherited;end;procedure TForm1.wmme(var message: TMessage);beginShowMessage(IntToStr(Handle)+ 'wmme'); //第一种消息处理方式end;procedure TForm1.WndProc(var message: TMessage);begin if message.Msg=WM_ME then //第二种消息处理方式 ShowMessage(IntToStr(Handle)+ 'WndProc');inherited WndProc(Message); //这里inherited才会触发一次wmme消息;end;end.实例2/////////////////////////////////////////////////////////////消息的广播方式////////////////////////////////////////////////////////////////////////////////////消息广播只能将消息传递到接收消息的主程序中,MDIChild窗体不能接收到广播消息;/////////unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;typeTForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject);private { Private declarations }public { Public declarations } procedure WndProc(var message:TMessage);override;end;varForm1: TForm1;MyMessage: DWORD;implementation{$R *.dfm}{ TForm1 }procedure TForm1.WndProc(var message: TMessage);beginif message.Msg=MyMessage then //第3步:重载Windows消息处理过程,处理接收到的MyMessage消息;ShowMessage(FloatToStr(Handle)+ 'MyMessage');inherited WndProc(Message);end;procedure TForm1.Button1Click(Sender: TObject);beginSendMessage(HWND_BROADCAST,MyMessage,0,0); //第2步:广播MyMessage消息;end;/////////预先注册好Windows消息;第一种方法////////////////////procedure TForm1.FormCreate(Sender: TObject);begin//同一字符串,如'MyMessageMe'在不同的程序中调用RegisterWindowMessage注册消息时,返回的MyMessage结果是一样的。这样为在不同程序之间广播消息提供了可能。即不同程序注册消息时,必须注册相同的注符串。 MyMessage:=RegisterWindowMessage('MyMessageMe'); //第1步:注册Windows消息,重点在于返回的值MyMessageend;/////////预先注册好Windows消息;第二种方法////////////////////{ initializationMyMessage:=RegisterWindowMessage('MyMessageMe');}
delphi中Message消息的使用方法a
delphi中Message消息的使用方法
Delphi中PING的实现a
delphi 消息机制引入的一个副作用
delphi 消息机制引入的一个副作用
Delphi中WebBbrowser的编程
Delphi中PING的实现
MSMQ(Microsoft Message Queue,微软消息队列)
A message to my so
delphi中关于tapplication类的详解
delphi中调用另外的exe程序
Delphi中Self和Sender的区别
Delphi中PING的实现ewe
delphi中关于tapplication类的详解
Delphi中Self和Sender的区别
delphi中TeeChart的各种属性
转贴:delphi中TeeChart的各种属性
delphi中TeeChart的各种属性1
Delphi中Variant和Stream的互换
吉祥物-水晶的使用方法a
Message Queue(消息队列)介绍与应用
Javascript 中 ShowModalDialog 的使用方法
php中heredoc的使用方法
来自观音祖先的一则信息A Message from Ancestor Quan Yin