📄 wmconst.pas
字号:
unit WMConst;
interface
uses
{$IFDEF __DEBUG}
Windows,
Messages;
{$ELSE}
Messages;
{$ENDIF}
type
//记录窗口消息(WM_??)常量
WMConstsInf=record
Name: PChar;
EGName: PChar;
Val: Double;
Explain: PChar;
end;
const
WMConstCount=20;
var
WMConstsAry:Array[0..WMConstCount-1] of WMConstsInf;
procedure InitWMConsts();
implementation
procedure InitWMConsts();
var
i:integer;
begin
for i:=0 to High(WMConstsAry) do case i+1 of
1://第一个消息常量
with WMConstsAry[i]do
begin
EGName:='WM_CLOSE';
Name:='窗口_关闭';
Explain:='当一个窗口将被关闭时,产生这个消息。如果该消息得到了处理,其返回值为0。这个消息没有任何参数。 '+
'如果截获到了该消息,并在相应的消息处理子程序中返回“真”,这个窗口就会被销毁。';
Val:=16;
end;
2://第2个消息常量
with WMConstsAry[i]do
begin
EGName:='WM_DESTROY';
Name:='窗口_销毁';
Val:=2;
Explain:='当一个窗口正在被销毁时,产生这个消息。如果该消息得到了处理,其返回值为0。这个消息没有任何参数。 '+
'这个消息首先发送到正在销毁的窗口,然后发送到它的所有子窗口。在处理这个消息时,可以认为它的所有子窗口仍然存在。';
end;
3://第3个消息常量
with WMConstsAry[i]do
begin
EGName:='WM_MOVE';
Name:='窗口_位置改变';
Val:=3;
Explain:='一个窗口的位置发生改变后,产生这个消息。如果该消息得到了处理,其返回值为0。 这个消息只用到参数2,其中参数2的低16位(低字)和高16位(高字)分别表示窗口客户区左上角的X和Y坐标。';
end;
4://第4个消息常量
with WMConstsAry[i]do
begin
EGName:='WM_MOVING';
Name:='窗口_正在移动';
Explain:='当用户正在移动窗口时,产生该消息。如果该消息得到了处理,其返回值为非零的整数。 '+
'该消息使用了两个参数,其中参数1表示窗口的那个部位被移动了。参数2是一个“矩形”(一个自定义数据类型,有4个整数型成员,分别代表矩形的左上角的X、Y坐标和右下角的X、Y坐标)类型容器的地址,表示窗口的“拖动矩形”。';
Val:=534;
end;
5://第5个消息常量
with WMConstsAry[i]do
begin
EGName:='WM_SYSCOMMAND';
Name:='窗口_系统命令';
Val:=274;
Explain:='当用户选择了窗口的“控制菜单”中的某个命令,或单击了最大化、最小化、恢复、关闭按钮中的一个时,产生该消息。如果该消息得到了处理,其返回值为0。 '+
'该消息使用了两个参数,其中参数1的低16位(低字)表示命令的类型。如果是用鼠标选择的命令,那么参数2大于0, 它的低16位(低字)、高16位(高字)分别表示当前鼠标指针的X和Y坐标(屏幕坐标,非窗口坐标)。';
end;
6://第6个消息常量
with WMConstsAry[i]do
begin
EGName:='WM_QUERYOPEN';
Name:='窗口_恢复大小';
Val:=19;
Explain:='当用户恢复一个最小化窗口到它原来的大小时,产生这个消息。这个消息没有任何参数。'+
'可以在对应的消息处理子程序中返回假,来阻止这个窗口从最小化恢复。';
end;
7://第7个消息常量
with WMConstsAry[i]do
begin
EGName:='WM_NCLBUTTONDOWN';
Name:='窗口_非客户区左键按下';
Val:=161;
Explain:='当用户在非客户区(比如标题栏,窗口边框等易语言自身的“窗口_鼠标左键被按下”事件无法检测到的地方)按下鼠标左键时,产生该消息。如果该消息得到了处理,其返回值为0。 这个消息有两个参数。'+
'其中参数1表示鼠标左键在窗口的什么位置按下。其中参数2的低16位(低字)和高16位(高字)分别代表该消息发生时鼠标指针在屏幕上的X和Y坐标。';
end;
8://第8个消息常量
with WMConstsAry[i]do
begin
EGName:='WM_HOTKEY';
Name:='窗口_热键';
Val:=WM_HOTKEY;
Explain:='当用户按下由“注册热键”命令注册的热键时,该消息被投递(post)到“注册热键”命令第一个参数所指定的窗口。 这个消息有两个参数。'+
'其中参数1代表“热键号”,即该热键的唯一标识,由“注册热键”命令返回。其中参数2的低16位(低字)和高16位(高字)分别代表“功能键”和“其他键”。详见“注册热键”命令的参数说明。';
end;
9://第9个消息常量
with WMConstsAry[i]do
begin
EGName:='WM_DRAWCLIPBOARD';
Name:='窗口_剪辑板内容已改变';
Val:=WM_DRAWCLIPBOARD;
Explain:='';
end;
//在此添加其他窗口常量的信息
else//保留消息
with WMConstsAry[i]do
begin
EGName:='Reserved...';
Name:='*保留未用*';
Val:=0;
Explain:='保留,暂未使用';
end;
//
end;//For and Case
end;//InitWMConst();
initialization
initWMConsts;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -