博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
过虑窗体最小化消息
阅读量:6613 次
发布时间:2019-06-24

本文共 1029 字,大约阅读时间需要 3 分钟。

很久没写随笔,今天在写一个托盘程序的时候,要捕获窗口最小化的消息,在WndProc里面没有捕获到,后面在TWinControl找到实现WM_SYSCOMMAND的过程。重写就可以了,其实WndProc里面也是可以的,刚开始写错了。

WndProc
procedure TfrmMain.WndProc(var aMsg: TMessage); begin if aMsg.Msg = WM_COMMAND then begin     Memo1.Lines.Add('WM_Command'); inherited; end else if aMsg.Msg = WM_SYSCOMMAND then begin     Memo1.Lines.Add('WM_SysCommand'); inherited; end else inherited; end;
WMCommand WMSysCommand
procedure WMCommand(var Message: TWMCommand); message WM_COMMAND; procedure WMSysCommand(var aMsg: TWMSysCommand); message WM_SYSCOMMAND; procedure TfrmMain.WMCommand(var Message: TWMCommand); begin   Memo1.Lines.Add(Format('ID:%d',[Message.ItemID ])); inherited; end; procedure TfrmMain.WMSysCommand(var aMsg: TWMSysCommand); begin if aMsg.CmdType and $FFF0 = SC_MINIMIZE then begin     Self.Hide;     Shell_NotifyIcon(NIM_ADD, @FTrayICONData) end else inherited; end;

WMSysCommand用来响应最大最小化以及关闭的消息,点击主菜单的时候也会响应,点击菜单项的时候响应的是WMCommand,消息里面包括有菜单的ID,大概是这样没深入研究。

转载于:https://www.cnblogs.com/Jekhn/archive/2012/01/11/2319880.html

你可能感兴趣的文章
8 种提升 ASP.NET Web API 性能的方法 【已翻译100%】
查看>>
《Node.js区块链开发》——1.5 总结
查看>>
《深入理解Elasticsearch(原书第2版)》一1.1.1 熟悉Lucene
查看>>
这些国货,在阿里平台上被美国剁手党抢疯了
查看>>
《Excel 职场手册:260招菜鸟变达人》一第 2 招 常用快捷键Windows与Mac对照
查看>>
《Python自动化运维:技术与最佳实践》一1.2 实用的IP地址处理模块IPy
查看>>
《IP组播(第1卷)》一2.6 IGMP版本
查看>>
《Greenplum企业应用实战》一第1章 Greenplum简介1.1 Greenplum的起源和发展历程
查看>>
开源世界已成围城:成本让企业蜂拥而来,也让企业退缩转投
查看>>
这些废弃的 HTML 标签不要用
查看>>
嵌入式实时应用开发实战(原书第3版)》——3.3 保护模式架构
查看>>
IE11 就这样不会再变了
查看>>
备战物联网平台 科技巨头打响开发者争夺战
查看>>
《仿人机器人原理与实战》一导读
查看>>
深夜食堂|有些泡面说不出哪里好,但就是谁都代替不了
查看>>
Bitbucket 版本控制入门指南
查看>>
《SOA Web Service合约设计与版本化》目录—导读
查看>>
人工智能在医疗:改善药物依从性、虚拟医疗助手、智能看护、智能药物研发......
查看>>
选择IT专业的原因?从薪资角度讲给你听
查看>>
《Python编程快速上手——让繁琐工作自动化》——1.4 在变量中保存值
查看>>