文档章节

学习 Message(17): WM_SYSCOMMAND 消息[一]

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 442
阅读 24
收藏 0

码上生花,ECharts 作品展示赛正式启动!>>>


已有定义的系统命令常数(感觉有些有问题):
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: 在最大化时双击标题栏

//可能还有...

 
 
 
 
 

 

 

  

WM_SYSCOMMAND 是做什么的? 咱们先看看把 WM_SYSCOMMAND 消息封锁掉是什么样子吧:

代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormDblClick(Sender: TObject);
  protected
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
const
  br = #13#10;
begin
  Label1.AutoSize := True;
  Label1.Caption :=
    '此窗体屏蔽了 SYSCOMMAND 消息!' + br +
    '将无法改变窗体大小;' + br +
    '将无法移动窗体;' + br +
    '将无法最大、最小化窗体;' + br +
    '也将无法通过常规途径关闭窗体.' + br +
    '' + br +
    '所以提供了双击窗体关闭的功能.';
  Label1.OnDblClick := OnDblClick;
end;

procedure TForm1.FormDblClick(Sender: TObject);
begin
  Close;
end;

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
//  inherited; {取消这句的注释, WM_SysCommand 就活了}
end;

end.

 
 
 
 
 

 

 

  
窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 172
  ClientWidth = 264
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  OnDblClick = FormDblClick
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 24
    Top = 24
    Width = 89
    Height = 33
    Caption = 'Label1'
  end
end

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/10/31/1323683.html

涂孟超
粉丝 13
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
加载中
请先登录后再评论。
Delphi 最小化窗体到托盘

---- 现在很多的应用程序都有这样一种功能,当用户选择最小化窗口时,窗口不是象平常那样最小化到任务栏上,而是“最小化”成一个任务栏图标。象FoxMail 3.0 NetVampire 3.0等都提供了这样的...

osc_vf6gypzr
2019/09/02
7
0
windows消息(一)

SendMessage函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队...

jinx88
2016/06/18
27
0
c# 更改最大化按钮功能实现最大化时遮盖任务栏,点击Esc取消全屏

更改最大化按钮功能实现最大化时遮盖任务栏。 const int WMSYSCOMMAND = 0x112; const int SCCLOSE = 0xF060; const int SCMINIMIZE = 0xF020; const int SCMAXIMIZE = 0xF030; protected ov......

Vevi
2012/08/11
703
0
MFC下多线程与消息机制的结合使用

前面一段时间,一直在想怎么样实现在全局的线程函数中实现调用窗体的一些函数(比如说在线程里面调用按钮单击处理函数,以及窗体的一些操作)。最近在网络 闲逛中发现了实现的方法,特意贴出...

长平狐
2012/07/12
361
0
Delphi 7下最小化到系统托盘

在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下: 1 2 3 4 5 6 7 8 9 _NOTIFYICONDATAA = record cb...

osc_dw0gmc84
2018/03/23
2
0

没有更多内容

加载失败,请刷新页面

加载更多

通过 highcharts插件显示柱状图

(1) 引用的js文件。可以去https://jshare.com.cn/demos/hhhhDf 下载 <script src="highchart/highcharts.js"></script> <script src="highchart/exporting.js"></script> (2) html 代码。 <d......

osc_fge5j3lp
30分钟前
3
0
浅谈QUIC协议原理与性能分析及部署方案

之前写过《http1.0 与 http1.1的区别》 与 《再谈HTTP2性能提升之背后原理—HTTP2历史解剖》,QUIC协议,现在nginx官方也即将支持。所以还是得跟上时代脚步。 QUIC简史 QUIC(Quick UDP Inter...

zhoulujun
31分钟前
7
0
从原型到原型链,修炼JavaScript内功这篇文章真的不能错过!

从原型到原型链 本文主要从构造函数 -> 原型(隐式原型+显示原型)-> 原型链的顺序,渐进式讲解,希望对你有所做帮助,共勉~ 系列文章: this指向详解:思维脑图与代码的结合,让你一篇搞懂...

osc_he4uu5y4
32分钟前
7
0
前端30K面试准备,最完整面试真题分享!

送福利啦! 历经两个月发展,本人终于回归前端岗位!裸辞的艰辛已然消逝 在这里特地讲我自己这两个月整理的相关面试题分享给大家,免费获取哦~ 内容: 基础题(293题) 进阶题(30题) 高级题...

osc_y2q7mau8
33分钟前
8
0
vue学习笔记之:ElementUI Select选择器的应用

使用ElementUI 的el-select制作的省市区级联选择 template模板部分:模板中使用了三个下拉菜单,第一个选择省,第二个和第三个分别是市和区,默认第二个和第三个下拉菜单不可用,当第一个选择...

JohnConnor
33分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部