小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

delphi中Message消息的使用方法

 nxhujiee 2010-04-19

原文鏈接:http://blog.csdn.net/delphi1234/archive/2008/02/20/2110083.aspx

unit Unit1;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
const
WM_ME=WM_USER+100; //自定義消息;
type
TForm1 = class(TForm)
    Button1: TButton;
procedure Button1Click(Sender: TObject);
//第一種消息處理方式; 只能處理常量消息;
   procedure wmme(var message:TMessage);message WM_ME; //自定義消息處理過(guò)程,專(zhuān)門(mén)處理WM_ME消息; private
   { Private declarations }
public
{ Public declarations }
//第二種消息處理方式;可能處理常量或變量消息;
procedure WndProc(var message:TMessage);override; //重載窗口消息過(guò)程
//第三種消息處理方式
   procedure WMCommand(var Message: TWMCommand); message WM_COMMAND; //命令消息處理過(guò)程
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
   SendMessage(Handle,WM_ME,0,0); //發(fā)送消息WM_ME ; 消息先由WndProc處理,再交給wmme處理;
end;
procedure TForm1.WMCommand(var Message: TWMCommand);
begin     //第三種消息處理方式
if Message.NotifyCode = BN_CLICKED then
if FindControl(Message.Ctl) = Button1 then showmessage(點(diǎn)擊了Button1’);
inherited;
end;
procedure TForm1.wmme(var message: TMessage);
begin
ShowMessage(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才會(huì)觸發(fā)一次wmme消息;
end;
end.
實(shí)例2/////////////////////////////////////////////////////////////消息的廣播方式/////////////////////////////////////////////////////////////////////////////
///////消息廣播只能將消息傳遞到接收消息的主程序中,MDIChild窗體不能接收到廣播消息;/////////
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = 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;
var
Form1: TForm1;
MyMessage: DWORD;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.WndProc(var message: TMessage);
begin
if message.Msg=MyMessage then //3步:重載Windows消息處理過(guò)程,處理接收到的MyMessage消息;
ShowMessage(FloatToStr(Handle)+ 'MyMessage');
inherited WndProc(Message);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(HWND_BROADCAST,MyMessage,0,0); //2步:廣播MyMessage消息;
end;
/////////預(yù)先注冊(cè)好Windows消息;第一種方法////////////////////
procedure TForm1.FormCreate(Sender: TObject);
begin
//同一字符串,'MyMessageMe'在不同的程序中調(diào)用RegisterWindowMessage注冊(cè)消息時(shí),返回的MyMessage結(jié)果是一樣的。這樣為在不同程序之間廣播消息提供了可能。即不同程序注冊(cè)消息時(shí),必須注冊(cè)相同的注符串。
    MyMessage:=RegisterWindowMessage('MyMessageMe'); //1步:注冊(cè)Windows消息,重點(diǎn)在于返回的值MyMessage
end;
/////////預(yù)先注冊(cè)好Windows消息;第二種方法////////////////////
{ initialization
MyMessage:=RegisterWindowMessage('MyMessageMe');
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多