已有定义的系统命令常数(感觉有些有问题):
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
分类:
Windows 消息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧