各位大富翁,我需要发送自定义消息,可是怎么接受不到呢?请指点迷津。
const
WM_selfBoadCase = WM_user + 100;
我在一个button clicked事件中发送该消息如下形式,
postmessage(HWND_BROADCAST,WM_selfBoadCase,0,0);
然后用如下的方式接收:
...............
procedure wmBroadCase(var message:TMessage);Message wm_selfBoadCase;
...........
implementprocedure TForm1.wmBroadCase(var message:TMessage);
begin
showMessage('get the broadcase Message');
end;这样我怎么也收不到该广播消息。如果我发消息的时候,指定接受者,则可以收到,谁能给
解答一下?谢谢
可以收到的消息模式:
postmessage(tform1.handle,wm_selfboadcase,0,0);
为什么这样收不到?
postMessage(HWND_BROADCAST,wm_selfboadcase,0,0);
怎么样才能收到HWND_BROADCAST消息?
说明我注册消息了。
registerWindowMessage('wm_selfboadcase');
const
WM_selfBoadCase = WM_user + 100;
我在一个button clicked事件中发送该消息如下形式,
postmessage(HWND_BROADCAST,WM_selfBoadCase,0,0);
然后用如下的方式接收:
...............
procedure wmBroadCase(var message:TMessage);Message wm_selfBoadCase;
...........
implementprocedure TForm1.wmBroadCase(var message:TMessage);
begin
showMessage('get the broadcase Message');
end;这样我怎么也收不到该广播消息。如果我发消息的时候,指定接受者,则可以收到,谁能给
解答一下?谢谢
可以收到的消息模式:
postmessage(tform1.handle,wm_selfboadcase,0,0);
为什么这样收不到?
postMessage(HWND_BROADCAST,wm_selfboadcase,0,0);
怎么样才能收到HWND_BROADCAST消息?
说明我注册消息了。
registerWindowMessage('wm_selfboadcase');
解决方案 »
- 请问有阅读PDF的DELPHI7控件吗?
- 用SDK5.1如何识别中文发音?
- 求助:从串口收到0D时,在memo上要换行,怎么解决。
- delphi 数组问题,向数据库中写!
- 谁有f1book 的汉化版?
- 公司网站开通了,高兴,散分,希望大家成为首批访问者,并给以意见
- 关于报表的设置问题
- 为什么DevExpress中的TCxLookupcombobox在开发BPL插件系统中,其EditValue的返回值是NULL。其他ExpressEditors中的控件情况也是一样?
- 关于日期相加:::
- 关于query控件中删除记录的简单问题!!!!
- 怎样建立COM/DCOM对象?
- 和单片机进行串口RS232数据交换的问题!在线等!!!
^_^
Form1: TForm1;
uMsg :UINT;
implementation{$R *.dfm}procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if msg.message = uMsg then
showMessage('get the broadcase Message');
end;procedure TForm1.FormCreate(Sender: TObject);
begin
uMsg := RegisterWindowMessage('mymsg');end;procedure TForm1.Button1Click(Sender: TObject);
begin
postMessage(HWND_BROADCAST,uMsg,0,0);
end;
WM_selfBoadCase = WM_user + 100;
这样定义的消息是无法HWND_BROADCAST的。能HWND_BROADCAST的消息必须uMsg := RegisterWindowMessage('mymsg');
uMsg必须在0xC000倒0xFFFF之间
的好
然后,用application.onmessage事件中接受,就可以了。
如果用多个程序之间通讯,要用同一个字符串注册消息,就可以了。
resterwindowmessage('WM_share_Message');
谢谢各位的帮助。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,unit2, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public { Public declarations }
procedure appMessage(var Msg: tagMSG; var Handled: Boolean); end;var
Form1: TForm1;
implementation{$R *.dfm}{ TForm1 }
procedure TForm1.appMessage(var Msg: tagMSG; var Handled: Boolean);
begin
if msg.message = wm_my_message then
showMessage('self message');
end;procedure TForm1.FormCreate(Sender: TObject);
begin
WM_My_message := RegisterWindowMessage('WM_MES_REFRESH_CONTROL');
application.OnMessage := appMessage;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
postmessage(HWND_BROADCAST,WM_my_Message,0,0);
end;end.