随笔分类 - Delphi-消息研究
摘要:在delphi线程中实现消息循环 在delphi线程中实现消息循环Delphi的TThread类使用很方便,但是有时候我们需要在线程类中使用消息循环,delphi没有提供. 花了两天的事件研究了一下win32的消息系统,写了一个线程内消息循环的测试. 但是没有具体应用过,贴出来给有这方面需求的DFW
阅读全文
摘要:http://www.txsz.net/xs/delphi/3/Windows%20%E6%B6%88%E6%81%AF%E6%9C%BA%E5%88%B6.htm Windows 消息机制 by machine 大家是不是很奇怪为什么我还没说到Delphi的控件呢? 不过不用着急,有关深入控件的内
阅读全文
摘要:unit Unit2;interfaceusesSystem.Classes, Windows, Messages;constWM_DO = WM_USER + 1;typeTDemoThread = class(TThread)private{ Private declarations }prot
阅读全文
摘要:procedure TWinControl.DefaultHandler(var Message); begin if FHandle <> 0 then begin with TMessage(Message) do begin if (Msg = WM_CONTEXTMENU) and (Par
阅读全文
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLab
阅读全文
摘要:这是一个再普通不过的Button1Click执行体: procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('I am Button1'); end; 点击Button1以后,具体过程是:Form收到Button1发来的W
阅读全文
摘要:一、什么是消息? 消息是windows对应用程序发送的有关‘发生了某种事件’的通知。例如点击鼠标,调整窗口大小或键盘上按下一个键,都会引起windows发送一条消息到应用程序中去,去通知应用程序发生了什么。 Windows以record的形式发送消息给应用程序。记录中包括事件的类型以及附加的特定信息
阅读全文
摘要:Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型, 而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放数据的含义也不一样。 time表示产生消息的时间,pt表示产生消息时鼠标的位置。 里面没有Result的选项。然后我用VC2
阅读全文
摘要:Delphi重定义消息结构随心所欲,只需要前4个字节是消息编号就行了,跟Windows消息虽然尽量保持一致,但其实相互没有特别大的关系。有了这个,就有了主动,带不带句柄完全看需要。 比如这个结构就带句柄(放到了第二个参数): 这个也带,因为确实需要: 这里甚至带了2个句柄: 而大多数消息都是不带句柄
阅读全文
摘要:摘自《Delphi深度历险》
阅读全文
摘要:系统关闭窗体的事件顺序为: OnCloseQuery ----> OnClose ----> OnDestroy下面的代码说明问题:[delphi]view plaincopyunitUnit3;interfaceusesWindows,Messages,SysUtils,Variants,Clas...
阅读全文
摘要:procedure TForm1.WMSysCommand(var Message: TWMSysCommand);var str: string;begin case Message.CmdType of SC_SIZE : str := 'SIZE ';...
阅读全文
摘要:unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Label1: T...
阅读全文
摘要:procedure TForm1.pnl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin ReleaseCapture;SendMessage(pnl1.Handl...
阅读全文
摘要:SendMessage基本认识函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。 函数原型:LRESULT SendMessage(HWND hWnd,...
阅读全文
摘要:Windows是一个基于消息驱动的系统,因此,在很多时候,我们需要截获一些消息然后自己进行处理。而VCL系统又有一些特定的消息。下面对我所了解的delphi环境中截获消息进行一些总结。 就个人了解,共有6种方法来截获/处理消息。 1. 消息钩子(Message Hook) 特点:可以针对所有有句柄的
阅读全文
摘要:为什么要这样做?有时候我们需要一个非窗口组件(比如一个非继承自TWinContrl的组件)可以接受Windows消息。要接受消息就需要一个窗口句柄,但是非窗口组件却没有句柄。这篇文章将讲述怎么让一个没有句柄的组件如何通过一个隐藏的窗口接受消息这是怎么做到的?例如我的剪贴板查看组件就是一个不可视的组件...
阅读全文
摘要:unit HookMain;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type THookForm = class(TFo...
阅读全文
摘要:unit Main;interfaceuses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TMainForm = class(TForm)...
阅读全文
摘要:搞不懂,要想一想~
阅读全文