1. procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
  2. var
  3. str: string;
  4. begin
  5. case Message.CmdType of
  6. SC_SIZE : str := 'SIZE ';
  7. SC_MOVE : str := 'MOVE ';
  8. SC_MINIMIZE : str := 'MINIMIZE ';
  9. SC_MAXIMIZE : str := 'MAXIMIZE ';
  10. SC_NEXTWINDOW : str := 'NEXTWINDOW ';
  11. SC_PREVWINDOW : str := 'PREVWINDOW ';
  12. SC_CLOSE : str := 'CLOSE ';
  13. SC_VSCROLL : str := 'VSCROLL ';
  14. SC_HSCROLL : str := 'HSCROLL ';
  15. SC_MOUSEMENU : str := 'MOUSEMENU ';
  16. SC_KEYMENU : str := 'KEYMENU ';
  17. SC_ARRANGE : str := 'ARRANGE ';
  18. SC_RESTORE : str := 'RESTORE ';
  19. SC_TASKLIST : str := 'TASKLIST ';
  20. SC_SCREENSAVE : str := 'SCREENSAVE ';
  21. SC_HOTKEY : str := 'HOTKEY ';
  22. SC_DEFAULT : str := 'DEFAULT ';
  23. SC_MONITORPOWER : str := 'MONITORPOWER ';
  24. SC_CONTEXTHELP : str := 'CONTEXTHELP ';
  25. SC_SEPARATOR : str := 'SEPARATOR ';
  26.  
  27. : str := '拖动左边框 ';
  28. : str := '拖动右边框 ';
  29. : str := '拖动上边框 ';
  30. : str := '拖动左上角 ';
  31. : str := '拖动右上角 ';
  32. : str := '拖动下边框 ';
  33. : str := '拖动左下角 ';
  34. : str := '拖动右下角 ';
  35. : str := '拖动标题栏 ';
  36. : str := '横向滚动条滚动';
  37. : str := '双击横向滚动条';
  38. : str := '纵向滚动条滚动';
  39. : str := '双击纵向滚动条';
  40. : str := '点击最小化图标';
  41. : str := '在非最大化时双击标题栏';
  42. : str := '在最大化时双击标题栏';
  43. end;
  44.  
  45. if str = '' then str := IntToStr(Message.CmdType);
  46.  
  47. Text := str;
  48. inherited;
  49. end;

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

定义的和未定义的:

  1. 已有定义的系统命令常数(感觉有些有问题):
  2. SC_SIZE = ;
  3. SC_MOVE = ;
  4. SC_MINIMIZE = ;
  5. SC_MAXIMIZE = ;
  6. SC_NEXTWINDOW = ;
  7. SC_PREVWINDOW = ;
  8. SC_CLOSE = ;
  9. SC_VSCROLL = ;
  10. SC_HSCROLL = ;
  11. SC_MOUSEMENU = ;
  12. SC_KEYMENU = ;
  13. SC_ARRANGE = ;
  14. SC_RESTORE = ;
  15. SC_TASKLIST = ;
  16. SC_SCREENSAVE = ;
  17. SC_HOTKEY = ;
  18. SC_DEFAULT = ;
  19. SC_MONITORPOWER = ;
  20. SC_CONTEXTHELP = ;
  21. SC_SEPARATOR = ;
  22. SC_ICON = SC_MINIMIZE;
  23. SC_ZOOM = SC_MAXIMIZE;
  24.  
  25. 未定义的系统命令常数:
  26. : 拖动左边框
  27. : 拖动右边框
  28. : 拖动上边框
  29. : 拖动左上角
  30. : 拖动右上角
  31. : 拖动下边框
  32. : 拖动左下角
  33. : 拖动右下角
  34.  
  35. : 拖动标题栏
  36.  
  37. : 横向滚动条滚动
  38. : 双击横向滚动条
  39. : 纵向滚动条滚动
  40. : 双击纵向滚动条
  41. : 点击最小化图标
  42. : 在非最大化时双击标题栏
  43. : 在最大化时双击标题栏

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 简单、易用、高效的更多相关文章

  1. 【VS开发】开发最小化到托盘的功能

    在VC++中,想实现最小化MFC程序的时候,最小化到系统托盘,需要调用NOTIFYICONDATA类 下面我们就来讲解一下如何简单实现一个系统托盘我们以对话框程序为列 第一步:在Dlg类中//定义一个 ...

  2. Ubuntu 16.04 启用 点击Launcher图标,窗口实现最小化 功能

    安装了Ubuntu之后,要是每次都点击最小化按钮来实现窗口的最小化,操作起来很不方便,那么怎么样才能方便操作呢, Ubuntu 16.04 本身支持 点击应用程序Launcher图标实现最小化 功能, ...

  3. JQuery内容从左边框移到右边框

    最近感觉学习挺紧的.JQuery没有学几天就又开始学习AngularJS了.学习的时候都是看着老师用着很简单,自己写的时候就觉得不太会用.但是学习AngularJS的时候有很多问题,我觉得不管是学习J ...

  4. C# WinForm 拖动无边框窗体 改变无边框窗体尺寸

    经常遇到这种情况.窗体的边框去掉了.然后种种问题就出来了:不能拖动.不能改变窗体大小.不能......当然.肯定有解决方案滴*^_^*今天的目标就是:可以直接拖动没有边框的窗体.可以直接拉拽窗体改变其 ...

  5. js 鼠标左键拖动滚动

    鼠标左键拖动滚动 原作者: http://blog.csdn.net/lisatisfy/article/details/6606026 本文在源代码的基础上 增加支持水平滚动 的功能 html &l ...

  6. 【Winfrom-无边框窗体】Winform如何拖动无边框窗体?

    去掉边框 this.FormBorderStyle = FormBorderStyle.None; 方法一: Point mouseOff;//鼠标移动位置变量 bool leftFlag;//标签是 ...

  7. Electron 无边框窗口最大化最小化关闭功能

    Electron 无边框窗口最大化最小化关闭功能 目的 实现无边框窗口,并添加最大化最小化和关闭功能 前提 了解Electron 主进程和渲染进程的通讯 了解 BrowserWindow相关功能 操作 ...

  8. winform学习(9)无边框拖动窗体

    去除边框 选中窗体,在属性中找到FormBorderStyle,设置为None 实现无边框拖动 [DllImport("user32.dll")]        public st ...

  9. C# GDI绘制矩形框,鼠标左键拖动可移动矩形框,滚轮放大缩小矩形框

    最近工作需要,要做一个矩形框,并且 用鼠标左键拖动矩形框移动其位置.网上查了一些感觉他们做的挺复杂的.我自己研究一天,做了一个比较简单的,发表出来供大家参考一下.如觉得简单,可路过,谢谢.哈哈. 先大 ...

随机推荐

  1. Programming C#.Inheritance and Polymorphism

    继承 C#中,创建派生类要在派生类的名字后面加上冒号,后面再跟上基类的名字: public class ListBox : Control 提示:C++程序员注意了,C#没有私有或者保护继承 多态 继 ...

  2. 关于ThreadAbortExcption异常处理

    之前程序中,使用Thread.Abort()方法来终止线程的运行,但它是抛出ThreadAbortException异常来终止线程. 异常信息摘要: Unhandled Exception:Threa ...

  3. Python进阶之闭包

    闭包 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB","S ...

  4. Android 6.0 以及HttpClient

    Android 6.0 SDK,API Level 是 23.更新之后,就可以修改 compileSdkVersion 和targetSdkVersion 到 23 体验新的特性了. 同时 Andro ...

  5. codeforces 21D. Traveling Graph 状压dp

    题目链接 题目大意: 给一个无向图, n个点m条边, 每条边有权值, 问你从1出发, 每条边至少走一次, 最终回到点1. 所走的距离最短是多少. 如果这个图是一个欧拉回路, 即所有点的度数为偶数. 那 ...

  6. codeforces 552 E. Vanya and Brackets 表达式求值

    题目链接 讲道理距离上一次写这种求值的题已经不知道多久了. 括号肯定是左括号在乘号的右边, 右括号在左边. 否则没有意义. 题目说乘号只有15个, 所以我们枚举就好了. #include <io ...

  7. 解决Oracle 11gR2 空闲连接过多,导致连接数满的问题

    今天又遇到了11gR2连接数满的问题,以前也遇到过,因为应用那边没有深入检查,没有找到具体原因,暂且认为是这个版本Oracle的BUG吧. 上次的处理办法是用Shell脚本定时在系统中kill  v$ ...

  8. Form Presonalization 表单个性化定义控制应用

    1.1.1   表单个性化定义 Oracle EBS 11.5.10所增加的Form Presonalization功能,是在对Form不进行开发的前提下,用一些系统内置的触发器,按照所设定的控制规则 ...

  9. lint使用简介

    LINT工具是一种软件质量保证工具,许多国外的大型专业软件公司,如微软公司,都把它作为程序检查工具,在程序合入正试版本或交付测试之前一定要保证通过了LINT检查,他们要求软件工程师在使用LINT时要打 ...

  10. java.util.Timer分析源码了解原理

    Timer中最主要由三个部分组成: 任务 TimerTask .  任务队列: TaskQueue queue 和 任务调试者:TimerThread thread 他们之间的关系可以通过下面图示: ...