• 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    ';
    
        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

  • 相关阅读:
    3、Less-计算
    2、Less-混合
    1、Less-初见
    5、反射-动态代理
    4、反射-类的构造器:Constrctor
    3、反射-Field
    2、反射-Method&父类
    1、反射-Class&ClassLoader
    5、URLConnection(3)
    Linux进程状态查询
  • 原文地址:https://www.cnblogs.com/findumars/p/5054791.html
Copyright © 2020-2023  润新知