`
isiqi
  • 浏览: 16849505 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

VCL中常用消息汇总

阅读更多

http://www.delphifans.com/InfoView/Article_53.html
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg

它在Windows单元中是这样声明的:
type
TMsg = packed record
hwnd: HWND; / /
窗口句柄
message: UINT; / /
消息常量标识符
wParam: WPARAM ; // 32
位消息的特定附加信息
lParam: LPARAM ; // 32
位消息的特定附加信息
time: DWORD; / /
消息创建时的时间
pt: TPoint; / /
消息创建时的鼠标位置
end;

消息中有什么?

是否觉得一个消息记录中的信息像希腊语一样?如果是这样,那么看一看下面的解释:
hwnd 32
位的窗口句柄。窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可视对象的句柄(窗口、对话框、按钮、编辑框等)
message
用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量。
wParam
通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。
lParam
通常是一个指向内存中数据的指针。由于W P a r a ml P a r a mP o i n t e r都是3 2位的,
因此,它们之间可以相互转换。

WM_NULL = $0000;
WM_CREATE = $0001;
应用程序创建一个窗口
WM_DESTROY = $0002;
一个窗口被销毁
WM_MOVE = $0003;
移动一个窗口
WM_SIZE = $0005;
改变一个窗口的大小
WM_ACTIVATE = $0006;
一个窗口被激活或失去激活状态;
WM_SETFOCUS = $0007;
获得焦点后
WM_KILLFOCUS = $0008;
失去焦点
WM_ENABLE = $000A;
改变enable状态
WM_SETREDRAW = $000B;
设置窗口是否能重画
WM_SETTEXT = $000C;

应用程序发送此消息来设置一个窗口的文本
WM_GETTEXT = $000D;
应用程序发送此消息来复制对应窗诘奈谋镜交撼迩?
WM_GETTEXTLENGTH = $000E;
得到与一个窗口有关的文本的长度(不包含空字符)
WM_PAINT = $000F;
要求一个窗口重画自己
WM_CLOSE = $0010;
当一个窗口或应用程序要关闭时发送一个信号
WM_QUERYENDSESSION = $0011;
当用户选择结束对话框或程序自己调用ExitWindows函数
WM_QUIT = $0012;
用来结束程序运行或当程序调用postquitmessage函数
WM_QUERYOPEN = $0013;
当用户窗口恢复以前的大小位置时,把此消息发送给某个图标
WM_ERASEBKGND = $0014;
当窗口背景必须被擦除时(例在窗口改变大小时)
WM_SYSCOLORCHANGE = $0015;
当系统颜色改变时,发送此消息给所有顶级窗口
WM_ENDSESSION = $0016;
当系统进程发出WM_QUERYENDSESSION消息后,此消息发送给应用程序,
通知它对话是否结束
WM_SYSTEMERROR = $0017;
WM_SHOWWINDOW = $0018;
当隐藏或显示窗口是发送此消息给这个窗口
WM_ACTIVATEAPP = $001C;
发此消息给应用程序哪个窗口是激活的,哪个是非激活的;
WM_FONTCHANGE = $001D;
当系统的字体资源库变化时发送此消息给所有顶级窗口

WM_TIMECHANGE = $001E;
当系统的时间变化时发送此消息给所有顶级窗口
WM_CANCELMODE = $001F;
发送此消息来取消某种正在进行的摸态(操作)
WM_SETCURSOR = $0020;
如果鼠标引起光标在某个窗口中移动且鼠标输入没有被捕获时,就发消息给某个窗口
WM_MOUSEACTIVATE = $0021;
当光标在某个非激活的窗口中而用户正按着鼠标的某个键发送此消息给当前窗口
WM_CHILDACTIVATE = $0022;
发送此消息给MDI子窗口当用户点击此窗口的标题栏,或当窗口被激活,移动,改变大小
WM_QUEUESYNC = $0023;
此消息由基于计算机的训练程序发送,通过WH_JOURNALPALYBACKhook程序
分离出用户输入消息
WM_GETMINMAXINFO = $0024;
此消息发送给窗口当它将要改变大小或位置;
WM_PAINTICON = $0026;
发送给最小化窗口当它图标将要被重画
WM_ICONERASEBKGND = $0027;
此消息发送给某个最小化窗口,仅当它在画图标前它的背景必须被重画
WM_NEXTDLGCTL = $0028;
发送此消息给一个对话框程序去更改焦点位置
WM_SPOOLERSTATUS = $002A;
每当打印管理列队增加或减少一条作业时发出此消息
WM_DRAWITEM = $002B;
buttoncomboboxlistboxmenu的可视外观改变时发送
此消息给这些空件的所有者
WM_MEASUREITEM = $002C;
button, combo box, list box, list view control, or menu item 被创建时
发送此消息给控件的所有者

WM_DELETEITEM = $002D;

分享到:
评论

相关推荐

    深入BCB理解VCL的消息机制.rar_bcb_vcl

    在编程领域,尤其是使用C++ Builder(BCB)进行Windows应用程序开发时,理解Visual Component Library(VCL)的消息机制是至关重要的。VCL是 Borland 公司为C++ Builder设计的一个图形用户界面(GUI)库,它基于...

    vcl.donet vcl vcl vcl

    vcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donetvcl.donet

    VCL消息处理机制的内幕

    VCL(Visual Component Library)是Delphi编程环境中用于构建用户界面的核心库,它基于Windows的消息驱动模型。在深入了解VCL消息处理机制之前,我们需要先理解Windows操作系统中的消息系统。Windows通过消息队列、...

    深入VCL理解BCB的消息机制

    5. **消息过滤和拦截**:在VCL中,可以使用`OnMessage`事件来过滤和处理特定消息,甚至在它们被默认处理之前。这对于实现全局的事件处理,比如统一的日志记录或错误处理,非常有用。 6. **非模态对话框和控件的消息...

    深入VCL 理解BCB的消息机制

    深入理解VCL与BCB的消息机制,特别是针对C/C++/MFC/VC/VC++开发者,是一项关键技能。在本文中,我们将聚焦于VCL(Visual Component Library)中的消息处理机制,尤其关注如何通过重载`WndProc`方法来理解和控制控件...

    vcl插件是一款免费、自由、开源的跨平台多媒体播放器及框架

    VCL(Virtual Container Library)是一种强大的插件和多媒体播放器框架,它的主要特点是免费、自由且开源,允许开发者在各种操作系统上构建跨平台的应用程序。VCL的核心设计理念是提供一个统一的接口,使得开发者...

    VCL消息系统的剖析--四级消息处理.zip_delphi_site:www.pudn.com_vcl

    在"11VCL消息系统的剖析--四级消息处理"文档中,可能会详细阐述这四级处理的实现细节,包括消息的传递过程、如何自定义消息处理、消息过滤以及多线程环境下的消息同步等问题。通过阅读这份文档,你可以更深入地理解...

    Delphi DevExpressVCL安装教程

    本教程将针对不熟悉DevExpress VCL安装过程的新手进行详细讲解,让新手能够顺利地在Delphi环境中安装并使用这一组件库。 首先,安装DevExpress VCL需要下载相应的安装包。在提供的文件列表中,“DevExpressVCL安装...

    vcl70bpl组件

    VCL70BPL组件是Delphi编程环境中一个重要的动态链接库(Dynamic Link Library),它主要包含了一系列的Visual Component Library(VCL)组件。...理解和掌握VCL组件库的使用,对于提升Delphi编程的效率和质量至关重要。

    用VCL样式为VCL应用程序换肤.flv

    用VCL样式为VCL应用程序换肤.flv

    关于捕获VCL没有处理的Windows消息

    首先,VCL使用消息映射机制来关联特定的Windows消息与代码中的函数。这个机制类似于MFC(Microsoft Foundation Classes)中的消息映射,它允许开发者定义哪些消息应该被哪个函数处理。C++ Builder中的消息映射定义...

    DevExpress VCL V19.1.2 FullSource〖D7~D10.3Rio〗内含安装工具

    请低调使用!请低调使用!请低调使用!请低调使用!请低调使用!请低调使用! 解压后包括:1套是源码...DevExpress VCL Subscription曾用名为"Developer Express VCL Subscr i ption"。 【适用范围】:VCL应用程序开发

    vcl40.bpl文件

    3. **检查项目设置**:确保你的项目配置正确,指定了正确的编译和链接路径,以及使用的VCL版本。 4. **更新组件库**:如果你使用的是较旧版本的开发环境,考虑升级到最新版本,这可能会解决因库文件不兼容导致的...

    CAD VCL Enterprise V14

    声明:此文件在网上所得,仅供研究用,请在下载后24小时内删除,并请不要用于商业用途,请支持正版! CAD VCL是一个高品质多功能且含源码的控件,它提供了几个强大的类用于为您的Delphi/C++Builder应用程序创建Auto...

    DevExpress VCL.rar

    2. 示例代码和项目:为了帮助开发者理解和学习如何使用DevExpress VCL控件,压缩包可能包含各种示例代码和实际运行的项目。这些示例通常展示了控件的各种用法和特性,是学习新功能的好资源。 3. 文档:详尽的API文档...

    vcl50.bpl的压缩包

    5. **设计时支持**:在Delphi集成开发环境中,VCL组件不仅可以在运行时使用,也可以在设计时进行预览和配置,例如在Form Designer中调整组件的位置、大小、属性等。 6. **编译器优化**:由于Delphi是基于Pascal语言...

    DevExpress VCL V14.2.2 FullSource〖XE8〗含编译文件

    拥有180多种VCL界面控件,功能丰富且易于上手 DevExpress VCL Subscription 是 Devexpress公司旗下用户...DevExpress VCL Subscription曾用名为"Developer Express VCL Subscription"。 【适用范围】:VCL应用程序开发

    VCL60.BPL等动态库

    可以使用`regsvr32`命令行工具尝试注册vcl60.bpl,但请注意,不是所有的.DLL文件都可以用此方法注册。 5. **检查系统兼容性**:确保你的Windows版本与试图运行的.exe程序兼容。有些旧的或特定版本的应用程序可能...

    DevExpress VCL 23.2.6 Full Source

    DevExpress VCL 23.2.6 Full Source的发布,就是为了解决Delphi 12.2环境下对第三方控件的需求,提供了一个完整的源代码支持,确保开发者能够使用最新的Delphi版本,并结合DevExpress VCL组件开发出更优质的应用程序...

    vcl 64位播放器

    vcl 64位播放器,支持各种流媒体播放,windows系统运行

Global site tag (gtag.js) - Google Analytics