首页 > Windows开发 > 详细

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

时间:2015-12-17 18:48:52      阅读:433      评论:0      收藏:0      [点我收藏+]
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    ;

    61441: str := 拖动左边框    ;
    61442: str := 拖动右边框    ;
    61443: str := 拖动上边框    ;
    61444: str := 拖动左上角    ;
    61445: str := 拖动右上角    ;
    61446: str := 拖动下边框    ;
    61447: str := 拖动左下角    ;
    61448: str := 拖动右下角    ;
    61458: str := 拖动标题栏    ;
    61558: str := 横向滚动条滚动;
    61574: str := 双击横向滚动条;
    61575: str := 纵向滚动条滚动;
    61559: str := 双击纵向滚动条;
    61587: str := 点击最小化图标;
    61490: str := 在非最大化时双击标题栏;
    61730: 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         = 61440;
SC_MOVE         = 61456;
SC_MINIMIZE     = 61472;
SC_MAXIMIZE     = 61488;
SC_NEXTWINDOW   = 61504;
SC_PREVWINDOW   = 61520;
SC_CLOSE        = 61536;
SC_VSCROLL      = 61552;
SC_HSCROLL      = 61568;
SC_MOUSEMENU    = 61584;
SC_KEYMENU      = 61696;
SC_ARRANGE      = 61712;
SC_RESTORE      = 61728;
SC_TASKLIST     = 61744;
SC_SCREENSAVE   = 61760;
SC_HOTKEY       = 61776;
SC_DEFAULT      = 61792;
SC_MONITORPOWER = 61808;
SC_CONTEXTHELP  = 61824;
SC_SEPARATOR    = 61455;
SC_ICON         = SC_MINIMIZE;
SC_ZOOM         = SC_MAXIMIZE;


未定义的系统命令常数:
61441: 拖动左边框
61442: 拖动右边框
61443: 拖动上边框
61444: 拖动左上角
61445: 拖动右上角
61446: 拖动下边框
61447: 拖动左下角
61448: 拖动右下角

61458: 拖动标题栏

61558: 横向滚动条滚动
61574: 双击横向滚动条
61575: 纵向滚动条滚动
61559: 双击纵向滚动条
61587: 点击最小化图标
61490: 在非最大化时双击标题栏
61730: 在最大化时双击标题栏

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

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

原文:http://www.cnblogs.com/findumars/p/5054791.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!