示例一

 

自定义的消息必须由用户向窗口发送。Windows 提供了两种不同的方法向窗口发送Windows 消息:
PostMessage 函数和SendMessage 函数。这里通过例子来说明如何使用自定义消息。使用自定义消息前,
首先要定义一个消息标识符常量,为了避免和系统中已有消息标识符冲突,可在WM_USER 消息标识
符的基础上添加一个常量来赋给要定义的消息标识符。然后可在单元文件中定义消息响应过程和消息
标识符常量。消息响应过程使用消息类TMessage 的变量为参数,随后应定义一个消息标识符变量,
变量名必须为Message。

View Code
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzButton;
 
const
 
//定义一个WM_MYMESSAGE 消息 ,
 
//为了避免和系统中已有消息标识符冲突,可在WM_USER 消息标识
//符的基础上添加一个常量来赋给要定义的消息标识符
 WM_MYMESSAGE
=WM_USER +5;
type
  TMessageFrm 
= class(TForm)
    btn1: TRzButton;
    
procedure btn1Click(Sender: TObject);
    
procedure WMUser(var msg:TMessage);message WM_MYMESSAGE;
  
private
    
{ Private declarations }
  
public
    
{ Public declarations }
  
end;

var
  MessageFrm: TMessageFrm;

implementation

{$R *.dfm}

procedure TMessageFrm.btn1Click(Sender: TObject);
var
 HWnd:THandle;
begin
  HWnd:
=FindWindow('TMessageFrm','MessageFrm');
  
if HWnd<>0 then
   PostMessage(HWnd,WM_MYMESSAGE,
0,0);
end;
  
//编写响应自定义消息的代码
procedure TMessageFrm.WMUser(var msg: TMessage);
begin
  ShowMessage(
'我的消息');
end;

end.

 

 

posted on 2011-09-15 10:22  cnby  阅读(676)  评论(0编辑  收藏  举报