初涉Delphi下Windows消息机制——程序间自定义消息实例
2010-02-05 11:43
567 查看
窗口1添加一个button。添加button双击事件,代码如下:
FindWindow是根据窗口标题和窗口类来获得窗口的句柄。
接受端新建一个工程,窗口命名为myForm1。代码如下:
然后运行发送端程序和接受端程序,点击发送端按扭,接受端程序就会弹出一个对话框。
这儿使用的是PostMessage,会发现,不管已弹出的对话框有没有关闭,按钮依然可以继续点击,继续弹出对话框。
如果现在换成SendMessage,那第一次点击按钮,弹出一个对话框。但此时发送端不能再点击了,除非关闭了对话框,才可以进行下一次的消息发送。
这就是PostMessage和SendMessage的区别,PostMessage是发送信息,然后直接返回进行其他操作,而SendMessage则是等待消息处理程序结束了,才进行其他操作。
const MY_MESSAGE=WM_USER+100; var Form1: TForm1; hd:Thandle; implementation {$R *.dfm} procedure TForm1.btn1Click(Sender: TObject); begin hd:=FindWindow('TmyFORM1','myForm1'); if hd<>0 then begin PostMessage (Hd, MY_MESSAGE, 0,0); end else showmessage('找不到窗口myForm1'); end;
FindWindow是根据窗口标题和窗口类来获得窗口的句柄。
接受端新建一个工程,窗口命名为myForm1。代码如下:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; const MY_MESSAGE=WM_USER+100; type TmyForm1 = class(TForm) private { Private declarations } procedure mymessage(var mymsg:TMessage);message MY_MESSAGE; public { Public declarations } end; var myForm1: TmyForm1; implementation procedure TmyForm1.mymessage(var mymsg:TMessage); begin showmessage('收到'); inherited; end; {$R *.dfm} end.
然后运行发送端程序和接受端程序,点击发送端按扭,接受端程序就会弹出一个对话框。
这儿使用的是PostMessage,会发现,不管已弹出的对话框有没有关闭,按钮依然可以继续点击,继续弹出对话框。
如果现在换成SendMessage,那第一次点击按钮,弹出一个对话框。但此时发送端不能再点击了,除非关闭了对话框,才可以进行下一次的消息发送。
这就是PostMessage和SendMessage的区别,PostMessage是发送信息,然后直接返回进行其他操作,而SendMessage则是等待消息处理程序结束了,才进行其他操作。
相关文章推荐
- 初涉Delphi下Windows消息机制——同一程序内自定义消息实例
- 初涉Delphi下Windows消息机制——系统预定义消息实例
- Qt事件机制浅析(定义,产生,异步事件循环,转发,与信号的区别。感觉QT事件与Delphi的事件一致,而信号则与Windows消息一致)
- 【C#】Windows程序消息机制
- 理解windows消息机制-delphi消息机制学习笔记。
- Windows程序消息机制浅析
- delphi 判断程序是否运行、自定义消息显示程序运行界面
- windows程序消息机制(Winform界面更新有关)
- Winsocket入门教程三:以Windows消息机制驱动的客户端程序
- Windows消息机制的应用【Delphi版】
- 深入Delphi -- Windows 消息机制
- windows程序消息机制(Winform界面更新有关)--转
- 理解windows消息机制-delphi消息机制学习笔记。
- Windows程序设计零基础自学_1_Windows程序消息循环机制
- Delphi 自定义消息处理过程与Windows消息处理过程
- winform自定义组件开发之windows消息机制
- 一个简单的Windows程序及消息循环机制
- windows程序消息机制(Winform界面更新有关)
- DELPHI下的WINDOWS消息传递机制
- Windows用户自定义消息实现程序间通信