文档章节

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

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

已有定义的系统命令常数(感觉有些有问题):
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

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 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
0
0
windows消息(一)

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

jinx88
2016/06/18
10
0
MFC下多线程与消息机制的结合使用

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

长平狐
2012/07/12
172
0
delphi中Message消息的使用方法

实例1 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; const WMME=WMUSER+100; //自定义消息; type TForm1 ......

geek_loser
2015/01/15
0
0
MFC的SendMessage函数详解

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

长平狐
2012/10/08
3.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题

https://stackoverflow.com/questions/15423500/nginx-showing-blank-php-pages For reference, I am attaching my location block for catching files with the .php extension: location ~......

Yao--靠自己
15分钟前
1
0
mac 没声音

somehow不时就会出现这种情况。之前都得重启。 其实可以直接在terminal里打以下命令: sudo kextunload /System/Library/Extensions/AppleHDA.kext sudo kextload /System/Library/Extension...

dubox
31分钟前
1
0
看完让你彻底搞懂Websocket原理

作者:Ovear 链接:https://www.zhihu.com/question/20215561/answer/40316953 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 额。。最高票答案没答到点...

时刻在奔跑
45分钟前
2
0
Spring Cloud Stream消费失败后的处理策略(一):自动重试

之前写了几篇关于Spring Cloud Stream使用中的常见问题,比如: 如何处理消息重复消费 如何消费自己生产的消息 下面几天就集中来详细聊聊,当消息消费失败之后该如何处理的几种方式。不过不论...

程序猿DD
47分钟前
0
0
《Maven官方文档》-Maven依赖机制简介

《Maven官方文档》-Maven依赖机制简介 原文地址 译者:Tyrian 依赖机制是Maven最为用户熟知的特性之一,同时也是Maven所擅长的领域之一。单个项目的依赖管理并不难, 但是当你面对包含数百个...

tantexian
56分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部