深入delphi编程理解之消息(三)发送消息函数的一般应用实例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了深入delphi编程理解之消息(三)发送消息函数的一般应用实例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1966字,纯文字阅读大概需要3分钟。
内容图文
![深入delphi编程理解之消息(三)发送消息函数的一般应用实例](/upload/InfoBanner/zyjiaocheng/1316/786d004232ef4764b21be53eef9616bb.jpg)
通过对消息函数(SendMessage、PostMessage、Perform)的一般应用,来说明sendmessage、postmessage函数和perform 方法调用方式和结果的区别。
一、程序界面
二、程序代码及注释
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure MyWMClose(var Amessage: TWMClose); message WM_CLOSE; {拦截关闭窗口消息} end; var Form1: TForm1; implementation uses CommCtrl; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin SendMessage(Edit1.Handle, WM_SETTEXT, 255, Integer(PChar(‘abc‘))); {发送字符ABC} // Edit1.Perform(WM_SETTEXT,255,Integer(PChar(‘abc‘))); // PostMessage(Edit1.Handle,WM_SETTEXT,255,Integer(PChar(‘abc‘))); //SendMessage(Edit1.Handle,WM_Char,Wparam(‘Q‘),1); {传递字符 } end; procedure TForm1.Button2Click(Sender: TObject);
var
MyBroadCastMsg:cardinal; begin
MyBroadCastMsg:=RegeisterWindowsMessage(‘MyBroadCastMsg‘); //向系统注册消息
SendMessage(HWND_BROADCAST,MyBroadCastMsg,0,0); //向系统广播消息。 //PostMessage(Button2.Handle, BM_SETSTYLE, BS_RADIOBUTTON, 1); //改变按钮风格 end; procedure TForm1.Button3Click(Sender: TObject); begin SendMessage(Handle, WM_CLOSE, 0, 0); {点击按钮后 ,弹出MyWMClose函数窗口,点击取消息按后才会显示“欢迎回来”窗口;}
//Form1.Perform(WM_CLOSE, 0, 0); //PostMessage(Handle, WM_CLOSE, 0, 0); {点击按钮后 ,马上显示“欢迎回来”窗口,这是三个函数执行流程区别的体现。} ShowMessage(‘欢迎回来‘); end; procedure Tform1.MyWMClose(var Amessage: TWMClose); {拦截关闭窗口消息 } begin case MessageBoxW(Handle, ‘确认关闭窗口?‘, ‘提示‘, MB_OKCANCEL + MB_ICONQUESTION) of IDOK: begin Close; end; IDCANCEL: begin end; end; end; end.
分析:PostMessage函数与SendMessage函数和Perform方法主要区别在执行流程上的区别,PostMessage函数就象甩手雷,只管甩,不管是不是哑弹,可以连续甩。而SendMessage函数和Perform不仅要甩,而且要等到手雷爆炸后才能甩下一个。
原文:https://www.cnblogs.com/LifeStartPoint/p/12207030.html
内容总结
以上是互联网集市为您收集整理的深入delphi编程理解之消息(三)发送消息函数的一般应用实例全部内容,希望文章能够帮你解决深入delphi编程理解之消息(三)发送消息函数的一般应用实例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。