【Delphi】系统菜单中增加菜单项

目录

一、问题提出

二、程序截图

​编辑 ​编辑

三、程序代码:


一、问题提出

我们在开发windows程序的时候,可能会希望在窗体的系统菜单中增加一个菜单项,那么如何实现呢,实际上通过调用windows API是可以实现的,在Delphi中具体的实现代码见下面,API的参考连接地址:Menus Functions | Microsoft Learn

二、程序截图

 

三、程序代码:

如下示例代码可以根据实际情况进行修改,就可以达到自己需要的目的。

{sensor 2024-01-29相关文档:https://learn.microsoft.com/zh-hk/previous-versions/aa931756(v=msdn.10)}unit uMainForm;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Buttons;constMENU_MYITEM1 = WM_USER + 1000; //自定义消息句柄typeTForm2 = class(TForm)SpeedButton1: TSpeedButton;SpeedButton2: TSpeedButton;procedure SpeedButton1Click(Sender: TObject);procedure SpeedButton2Click(Sender: TObject);private{ Private declarations }H : THandle;procedure WMSysCommand(var Msg : TWmSysCommand); message WM_SYSCOMMAND; //拦截WM_SYSTEM消息public{ Public declarations }end;varForm2: TForm2;implementation{$R *.dfm}{ TForm2 }procedure TForm2.SpeedButton1Click(Sender: TObject);
beginAppendMenu(GetSystemMenu(handle,false),MF_SEPARATOR,0,'');//增加分隔条AppendMenu(GetSystemMenu(handle,false),MF_STRING,MENU_MYITEM1,'我的菜单项');//增加自定义菜单
end;procedure TForm2.SpeedButton2Click(Sender: TObject);
begin//删除分隔条,注意参数 0DeleteMenu(GetSystemMenu(handle,false),0,MF_BYCOMMAND);//删除一个菜单DeleteMenu(GetSystemMenu(handle,false),MENU_MYITEM1,MF_BYCOMMAND);
end;procedure TForm2.WMSysCommand(var Msg: TWmSysCommand);
beginif Msg.CmdType = MENU_MYITEM1 then //是自定义的菜单项MessageBox(handle,'自定义系统菜单项','提示',MB_OK or MB_ICONINFORMATION)elseinherited; // 其他交给系统处理,切记这一句很重要!!!!
end;end.

四、执行文件及源代码下载

        1. 执行文件:【免费】Demo-ADD-SysMenu.exe资源-CSDN文库

        2. 源程序:【免费】ADD-SystemMenu-Source资源-CSDN文库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/653983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go学习之air库的使用

首先下载air库 go install github.com/cosmtrek/air之后你需要去找到库下载的地方,若使用的是go mod可以使用命令 go env GOPATH找到下载库的位置 进入后,有bin,pkg目录,进入bin目录,你能看到air.exe文件 这时候将此…

备战蓝桥杯---二分(入门)

话不多说,先来个模板题来回顾一下上次讲的: 下面是AC代码: 下面进入正题: 本题对1,2行与3,4行组合,再用二分查找即可实现n^2logn的复杂度。 下面是AC代码: 接题: 让我们…

iOS 闭包和Block的区别

iOS 闭包和Block的区别 原文地址: mob64ca12eb7baf 引言 在iOS开发中,闭包和Block是两个常用的概念。它们都是将一段代码作为变量传递和使用的方式。尽管它们在实现上有一些相似之处,但它们之间还是存在一些重要的区别。本文将会详细介绍闭包和Block的…

leetcode 栈和队列相关题目

题目及题解 232. 用栈实现队列 - 力扣(LeetCode) 题解:https://leetcode.cn/problems/implement-queue-using-stacks/solutions/2614065/s2kong-shi-cai-ba-quan-bu-de-s1pushjin-q-8xv2 225. 用队列实现栈 - 力扣(LeetCode&am…

【更新】中国各省市是否属于“宽带中国”试点及“千兆城市”DID数据(2010-2023)

一、数据介绍 数据名称:【更新】中国各省市是否属于“宽带中国”试点及“千兆城市”DID数据 数据范围:全国所有地市 数据年份:2010-2023年 数据来源: “宽带中国”试点城市,来自工信部和国家发改委在2014年、2015…

幻兽帕鲁个人服务器怎么创建?

成功创建幻兽帕鲁服务器教程分享,阿里云和腾讯云均可以,总花费32元即可获得一台换手帕服务器4核16G配置,32人幻兽帕鲁服务器,阿腾云atengyun.com分享当前头部云厂商的Palworld服务器搭建教程,亲测可以! 阿…

【JavaScript基础入门】05 JavaScript基础语法(三)

JavaScript基础语法(三) 目录 JavaScript基础语法(三)数组概述数组语法多维数组 操作数组修改数组获取数组长度数组和字符串之间的转换添加和删除数组项 Null 和 Undefined字符串连接字符串字符串转换获取字符串的长度在字符串中查…

代码随想录刷题笔记-Day13

1. 二叉树的层序遍历 102. 二叉树的层序遍历https://leetcode.cn/problems/binary-tree-level-order-traversal/层次遍历依靠队列的先进先出特点实现。 解题思路 层序遍历的本质就是对每一个pop出来的处理节点,处理后把他的左右节点放进去。 对于每一层来说&…

Hutool改变我们的coding方式(四)

Hutool改变我们的coding方式 1、随机工具RandomUtil2、唯一ID工具IdUtil3、身份证工具IdcardUtil4、信息脱敏工具DesensitizedUtil 测试代码地址:https://gitee.com/Augenstern-creator/kuang-study_-hutools 1、随机工具RandomUtil RandomUtil主要针对JDK中Rando…

技法和原理:如何找到你需要的菜单项?

你一定碰到过查找某个菜单项的场景,通常我们会使用类似于 GetMenuItemInfo 这样的菜单函数, 在这类函数中,有一个参数允许你指定要查找的菜单项目的信息:MF_BYPOSITION 或者 MF_BYCOMMAND。 至此,是不是很眼熟了。今天…

一定用得到的时频分析方法!广义S变换、小波变换、短时傅里叶变换(STFT)、Wigner-Ville 分布,直接运行!

适用平台:Matlab2020版本及以上 在实际应用中,时频分析通常与机器学习/深度学习技术结合,以提高故障识别的性能。时频分析可以捕捉信号在时间和频率上的瞬时变化,有助于检测到与故障相关的瞬时特征,如脉冲、振动或其它…

༺༽༾ཊ—Unity之-05-抽象工厂模式—ཏ༿༼༻

首先创建一个项目, 在这个初始界面我们需要做一些准备工作, 建基础通用文件夹, 创建一个Plane 重置后 缩放100倍 加一个颜色, 任务:使用 抽象工厂模式 创建 人物与宠物 模型, 首先资源商店下载 人物与宠物…

智能语音识别源码系统+语义理解+对话管理+语音合成 带完整的搭建教程

人工智能技术的不断发展,智能语音识别技术逐渐成为人们日常生活和工作中不可或缺的一部分。然而,目前市场上的智能语音识别产品大多存在一定的局限性,如识别率不高、功能单一等。为了解决这些问题,罗峰给大家分享一款基于智能语音…

解锁极致性能:深度剖析全方位IO优化攻略

我们的应用服务部署在云服务器或硬件服务器上,运行着多个项目,执行着各种程序,对系统性能提出了更高的要求。在这个背景下,I/O性能的优化变得尤为关键。本文将带领您深入探索系统的深层,通过实用的命令、代码和专业建议…

Ps:段落面板

Ps菜单:窗口/段落 Window/Paragraph Ps菜单:文字/面板/段落面板 Type/Panels/Paragraph Panel 对于“点文本”,默认一行为一个段落。每按一次回车键,就多出一个段落。 对于“段落文本”,一段可能有多行,具体…

汽车网络安全管理体系框架与评价-汽车网络安全管理体系评价

当前 , 随若汽车联网产品渗透率、 智能传感设备搭载率的提升, 以及汽车与通信、互联网等行业的融合创新发展, 汽车行业面临愈发严峻的网络安全风险, 对消费者人身财产安全、 社会安全乃至国家安全产生威胁, 是产业发展…

多智能体强化学习--MAPPO(pytorch代码详解)

标题 代码详解Actor和Critic网络的设置 代码详解 代码链接(点击跳转) Actor和Critic网络的设置 基本设置:3个智能体、每个智能体观测空间18维。Actor网络:实例化一个actor对象,input-size是18Critic网络&#xff1…

临床医疗大数据治理框架

笔者从事医疗信息化多年,而今医疗大模型正当风头无两,而实际落地的应用门可罗雀。无论如何,大模型将是未来的行业的重要方向,而沉淀在各大医疗机构的临床数据极有可能在未来发挥更大的价值,在此梳理医疗大数据治理体系…

C语言之猜凶手

一、题目 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。 以下为4个嫌疑犯的供词: A说:不是我。B说:是C。C说:是D。D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在…

产品解读 | 新一代湖仓集存储,多模型统一架构,高效挖掘数据价值

星环科技TDH一直致力于给用户带来高性能、高可靠的一站式大数据基础平台,满足对海量数据的存储和复杂业务的处理需求。 同时在易用性方面持续深耕,降低用户开发和运维成本,让数据处理平民化,助力用户以更便捷、高效的方式去挖掘数…