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

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. Android 如何修改自动同步数据的默认开关 M

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  2. Android GreenDao with Android Studio IDE

    转:http://blog.surecase.eu/using-greendao-with-android-studio-ide/ In this tutorial we will show you ...

  3. PHP设计模式之单例模式(数据库访问)

    1.什么是单例模式? 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例.它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用. 2.单例模式的 ...

  4. codeforces 652D . Nested Segments 线段树

    题目链接 我们将线段按照右端点从小到大排序, 如果相同, 那么按照左端点从大到小排序. 然后对每一个l, 查询之前有多少个l比他大, 答案就是多少.因为之前的r都是比自己的r小的, 如果l还比自己大的 ...

  5. 给进程分配cpu核心

    新负责的程序采用生产者和消费者的模式,生产者的速度非常快,数据几乎都在内存里,处理起来很快.而消费者要频繁的I/O.所以打算给生产者和消费者分配不一样的核心. 生产者只需要一个核心就够了,其余分配给消 ...

  6. 中标麒麟6.0_ICE3.4.2编译+demo测试(CPP)

    (菜鸟版)确保 gcc版本4.4.6(其他版本未测试),4.8不行 一.降级GCC到4.4.6 注意:gcc g++ c++命令都为4.4.6(可用gcc -v; g++ -v; c++ -v 命令查 ...

  7. 解决Node.js调用fs.renameSync报错的问题(Error: EXDEV, cross-device link not permitted)

    2014-08-23 今天开始学习Node.js,在写一个文件上传的功能时候,调用fs.renameSync方法错误 出错代码所在如下: function upload(response,reques ...

  8. dg error

    startup force;ORACLE instance started. Total System Global Area 1068937216 bytesFixed Size           ...

  9. 「深入理解计算系统」从Hello World开始

    从 hello world 开始 Table of Contents 1 程序源文件 2 程序源文件是什么 3 程序被编译 4 程序运行 4.1 读取命令 4.2 读取指令内容 4.3 执行过程 5 ...

  10. MySql数据库连接池

    1.传统链接(如下为示意图) 注意: (1).传统方式找DriverManager要连接,数目是有限的. (2).传统方式的close(),并没有将Connection重用,只是切断应用程序和数据库的 ...