有关自定义消息广播 SendMessage(HWND_BROADCAST,WM_MyMsg,0,0);
2010-12-27 16:40
495 查看
来源:http://www.delphibbs.com/delphibbs/dispq.asp?lid=2322837
自定义一个消息 有一个程序发送给所有程序。。
所有的已运行的该程序可以相应这个消息。。。
但为什么我写的这段不好使啊。。。自己不能响应自己的消息???
初次尝试 请执教
分不够可以加
unit Unit1;
interface
uses Windows,Messages,Classes,Forms, StdCtrls, Controls;
const WM_MyMsg=Wm_User+100;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
public
Procedure MsgRev(var msg:TMessage);message WM_MyMsg;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(HWND_BROADCAST,WM_MyMsg,0,0);
end;
Procedure TForm1.MsgRev(var msg:TMessage);
Begin
Form1.Caption:='已运行了一个';
End;
end.
答案:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
MyMessage = 'MyMessage';
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FMyMsg: UINT;
protected
procedure WndProc(var Message: TMessage); override;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(HWND_BROADCAST, FMyMsg, 0, 0);
end;
procedure TForm1.WndProc(var Message: TMessage);
begin
inherited WndProc(Message);
if (FMyMsg > 0) and (Message.Msg = FMyMsg) then
Form1.Caption:='已运行了一个';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FMyMsg := RegisterWindowMessage(MyMessage);
end;
end.
自定义一个消息 有一个程序发送给所有程序。。
所有的已运行的该程序可以相应这个消息。。。
但为什么我写的这段不好使啊。。。自己不能响应自己的消息???
初次尝试 请执教
分不够可以加
unit Unit1;
interface
uses Windows,Messages,Classes,Forms, StdCtrls, Controls;
const WM_MyMsg=Wm_User+100;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
public
Procedure MsgRev(var msg:TMessage);message WM_MyMsg;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(HWND_BROADCAST,WM_MyMsg,0,0);
end;
Procedure TForm1.MsgRev(var msg:TMessage);
Begin
Form1.Caption:='已运行了一个';
End;
end.
答案:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
MyMessage = 'MyMessage';
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FMyMsg: UINT;
protected
procedure WndProc(var Message: TMessage); override;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(HWND_BROADCAST, FMyMsg, 0, 0);
end;
procedure TForm1.WndProc(var Message: TMessage);
begin
inherited WndProc(Message);
if (FMyMsg > 0) and (Message.Msg = FMyMsg) then
Form1.Caption:='已运行了一个';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FMyMsg := RegisterWindowMessage(MyMessage);
end;
end.
相关文章推荐
- Delphi消息的广播方式(先RegisterWindowMessage,后SendMessage HWND_BROADCAST,最后改写接收窗口的WndProc)
- Android自定义一个广播接收器BroadcastReceiver监听本地消息
- MFC学习(18)MFC中利用HWND_BROADCAST 向其它所有窗口广播消息
- HWND_BROADCAST 广播参数,表示想所有窗口发送消息
- 怎么获得主窗口的CWnd*?怎么把CWnd*变成HWND?怎么给HWND发送WM_USER消息?SendMessage(hwnd,WM_USER,0,0);可是主窗口接收不到
- vc中用SendMessage自定义消息传递
- vc中怎么使用SendMessage自定义消息函数
- MFC使用SendMessage()发送自定义消息实现进程间通信
- Broadcast-----------自定义Action , 两种方式 实现广播Broadcast
- protected-broadcast 系统应用自定义广播规范
- 有关WM_PAINT消息
- 自定义控件(自定义窗口)在对话框中接收不到WM_CHAR消息的解决方法
- weex接收来自Android手机的Broadcast广播消息
- vc中怎么使用SendMessage自定义消息函数
- MFC中有关WM_CREATE消息
- vc中使用SendMessage正确发送自定义消息的方法
- vc中使用SendMessage正确发送自定义消息的方法
- MFC 向Edit control控件发消息显示内容 (SendMessage与WM_SETTEXT)
- 安卓开发笔记——Broadcast广播机制(实现自定义小闹钟)
- 进程通信 WM_COPYDATA与HWND_BROADCAST