WM_SYSCOMMAND包括很多功能,比如:拖动左边框、拖动标题栏、滚动条滚动、点击最小化、双击标题栏——Delphi 通过事件代替了大部分常用的消息,所以Delphi 简单、易用、高效

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
var
str: string;
begin
case Message.CmdType of
SC_SIZE : str := 'SIZE ';
SC_MOVE : str := 'MOVE ';
SC_MINIMIZE : str := 'MINIMIZE ';
SC_MAXIMIZE : str := 'MAXIMIZE ';
SC_NEXTWINDOW : str := 'NEXTWINDOW ';
SC_PREVWINDOW : str := 'PREVWINDOW ';
SC_CLOSE : str := 'CLOSE ';
SC_VSCROLL : str := 'VSCROLL ';
SC_HSCROLL : str := 'HSCROLL ';
SC_MOUSEMENU : str := 'MOUSEMENU ';
SC_KEYMENU : str := 'KEYMENU ';
SC_ARRANGE : str := 'ARRANGE ';
SC_RESTORE : str := 'RESTORE ';
SC_TASKLIST : str := 'TASKLIST ';
SC_SCREENSAVE : str := 'SCREENSAVE ';
SC_HOTKEY : str := 'HOTKEY ';
SC_DEFAULT : str := 'DEFAULT ';
SC_MONITORPOWER : str := 'MONITORPOWER ';
SC_CONTEXTHELP : str := 'CONTEXTHELP ';
SC_SEPARATOR : str := 'SEPARATOR '; : str := '拖动左边框 ';
: str := '拖动右边框 ';
: str := '拖动上边框 ';
: str := '拖动左上角 ';
: str := '拖动右上角 ';
: str := '拖动下边框 ';
: str := '拖动左下角 ';
: str := '拖动右下角 ';
: str := '拖动标题栏 ';
: str := '横向滚动条滚动';
: str := '双击横向滚动条';
: str := '纵向滚动条滚动';
: str := '双击纵向滚动条';
: str := '点击最小化图标';
: str := '在非最大化时双击标题栏';
: str := '在最大化时双击标题栏';
end; if str = '' then str := IntToStr(Message.CmdType); Text := str;
inherited;
end;

http://www.cnblogs.com/del/archive/2008/10/31/1323813.html

定义的和未定义的:

已有定义的系统命令常数(感觉有些有问题):
SC_SIZE = ;
SC_MOVE = ;
SC_MINIMIZE = ;
SC_MAXIMIZE = ;
SC_NEXTWINDOW = ;
SC_PREVWINDOW = ;
SC_CLOSE = ;
SC_VSCROLL = ;
SC_HSCROLL = ;
SC_MOUSEMENU = ;
SC_KEYMENU = ;
SC_ARRANGE = ;
SC_RESTORE = ;
SC_TASKLIST = ;
SC_SCREENSAVE = ;
SC_HOTKEY = ;
SC_DEFAULT = ;
SC_MONITORPOWER = ;
SC_CONTEXTHELP = ;
SC_SEPARATOR = ;
SC_ICON = SC_MINIMIZE;
SC_ZOOM = SC_MAXIMIZE; 未定义的系统命令常数:
: 拖动左边框
: 拖动右边框
: 拖动上边框
: 拖动左上角
: 拖动右上角
: 拖动下边框
: 拖动左下角
: 拖动右下角 : 拖动标题栏 : 横向滚动条滚动
: 双击横向滚动条
: 纵向滚动条滚动
: 双击纵向滚动条
: 点击最小化图标
: 在非最大化时双击标题栏
: 在最大化时双击标题栏

http://www.cnblogs.com/del/archive/2008/10/31/1323683.html

------------------------------------------------------------------------------

如果你稍学点 C/C++ 的原始 Windows 编程, 就会发现哪里没有事件, 只有消息.
正因为 Delphi 能够直接使用消息, 所以 C/C++ 能做到的, Delphi 也可以; Delphi 通过事件代替了大部分常用的消息, 所以 Delphi 简单、易用、高效!
如果你喜欢, 在 Delphi 中你可以用消息代替所有事件; 有些消息 Delphi 没有包装成事件(或不方便或不能够包装), 你只能用消息.

http://www.cnblogs.com/del/archive/2008/10/31/1323797.html

上一篇:requireJS define require


下一篇:extjs_09_自定义分页组件