{ 2002.07.22 关于如何发送和接收系统消息 作者:王珍义 nickname:LargeWang(老王) QQ: 33728007 欢迎光临鹏业软件 www.pengesoft.com.cn
以下代码Delphi7.0通过,编译后启动两个进程,然后在一个窗口中点击Button1试试。}
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private Msg: LongInt; { Private declarations } protected procedure WndProc(var Message: TMessage); override; public
{ Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);begin Msg := RegisterWindowMessage('wm_mymessage'); Self.BringToFront;end;
procedure TForm1.WndProc(var Message: TMessage);begin if Message.Msg = Msg then begin Caption := ''; ShowMessage('收到消息了'); end else begin inherited; end;end;
procedure TForm1.Button1Click(Sender: TObject);var M: TMessage; B: DWord;begin M.Msg := Msg; B := BSM_ALLCOMPONENTS; BroadcastSystemMessage(BSF_POSTMESSAGE, @B , M.Msg, M.WParam, M.LParam );end;
end.
窗口文件object Form1: TForm1 Left = 192 Top = 107 Width = 696 Height = 480 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 204 Top = 84 Width = 75 Height = 25 Caption = 'Button1' TabOrder = 0 OnClick = Button1Click endend