此消息能使窗口在收到焦点时同时有机会实现他的逻辑调色板 public const intWM_PALETTEISCHAN

时间:2021-12-25 06:01:47

比来正在捣腾winfrom,遇到了关于window动静这一块的对象,正好在网上看到“微wx笑”的总结。

原文地点:

-----------------------------------------------------以下是原文内容---------------------------------------------------

不要以为下面的对象只有C++中才会用到哦!

动静,就是指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 凡是是一个指向内存中数据的指针。由于WParam、lParam和Pointer都是32位的,因此,它们之间可以彼此转换。

[csharp]  

 

public class WindowsMessage  

    {  

        public const int WM_NULL = 0x0000; //   

        public const int WM_CREATE = 0x0001; //应用措施创建一个窗口   

        public const int WM_DESTROY = 0x0002; //一个窗口被销毁   

        public const int WM_MOVE = 0x0003; //移动一个窗口   

        public const int WM_SIZE = 0x0005; //转变一个窗口的巨细   

        public const int WM_ACTIVATE = 0x0006; //一个窗口被激活或掉去激活状态;   

        public const int WM_SETFOCUS = 0x0007; //获得焦点后   

        public const int WM_KILLFOCUS = 0x0008; //掉去焦点   

        public const int WM_ENABLE = 0x000A; //转变enable状态   

        public const int WM_SETREDRAW = 0x000B; //设置窗口是否能重画   

        public const int WM_SETTEXT = 0x000C; //应用措施发送此动静来设置一个窗口的文本   

        public const int WM_GETTEXT = 0x000D; //应用措施发送此动静来复制对应窗口的文本到缓冲区   

        public const int WM_GETTEXTLENGTH = 0x000E; //得到与一个窗口有关的文本的长度(不包罗空字符)