Delphi 在系统菜单中添加菜单项


 1 unit Unit001;
2
3 interface
4
5 uses
6 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
7 Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
8
9 type
10 TForm1 = class(TForm)
11 procedure FormCreate(Sender:TObject);
12 procedure sysmenu(var msg:twmmenuselect);message wm_syscommand;
13 private
14 { Private declarations }
15 public
16 { Public declarations }
17 end;
18
19 var
20 Form1: TForm1;
21
22 implementation
23
24 {$R *.dfm}
25 procedure TForm1.FormCreate(Sender:TObject);
26 var
27 i:integer;
28 begin
29 i:= getsystemmenu(handle,false);
30 appendmenu(i,mf_separator,0,nil); //添加分割线
31 appendmenu(i,mf_string,100,‘我的菜单(&E)‘); //添加菜单项
32 end;
33 procedure TForm1.sysmenu(var msg:twmmenuselect);
34 begin
35 if msg.IDItem = 100 then
36 ShowMessage(‘您选择了自己添加的菜单!‘)
37 else
38 inherited;
39 end;
40 end.

API函数

function GetSystemMenu(hWnd:HWND;bRevert:BOOL):HMENU;stdcall;

  参数说明:

  hWnd: 所要取得系统菜单句柄的目标窗口句柄。

  bRevert:是否修改原始菜单。

  返回一个HMENU型的菜单句柄。

  通过GetSystemMenu得到句柄后可以使用AppendMenu函数为系统菜单增加一个菜单项,该函数原型为:

function
AppendMenu(hMenu:HMENU;uFlags,uIDNewItem:UNIT;lpNewItem:Pchar):BOOL;stdcall;

  参数说明:

  hMenu: 用GetSystemMenu函数得到的菜单句柄。

  uFlag,uIDNewItem:菜单唯一标志,弹出菜单唯一标志。

  lpNewItem:菜单的类型。

容易出现问题:

  缺少代码 message wm_syscommand;这句代码的主要作用是:A window receives this message when the user
chooses a commond from the window menu.而如果注释了inherited ,则所有系统菜单都不能用。

OnCreate关联

当窗体初始化创建时,就会发生OnCreate事件,对特定窗体的任何实例,OnCreate事件只发生一次,OnCreate处理程序只是用来执行任何启动任务,这些启动任务对于窗体来说是需要的。

Delphi 在系统菜单中添加菜单项,布布扣,bubuko.com

时间: 2024-08-08 01:29:40

Delphi 在系统菜单中添加菜单项的相关文章

Delphi在系统菜单中添加菜单项

unit dy219; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private procedure sysmenu(var msg: twmmenuselect);message wm_syscommand;

001在系统菜单中添加菜单项

技术要点: 为了操作系统菜单,先要获取系统菜单指针,可以通过GetSystemMenu函数实现,然后利用菜单指针添加一个菜单项,最后在对话框OnSysCommand方法中处理菜单项的命令. GetSystemMenu方法用于获取一个系统菜单的指针,语法如下: CMenu* GetSystemMenu(BOOL bRect); bRect:FALSE时,该方法返回当前正在使用的系统菜单:TRUE时,该方法将重新设置系统菜单到默认状态,并且方法返回值不可用. 实现过程: (1)新建一个基于对话框的应

mfc 小程序---在系统菜单中添加菜单项

1建立一个对话框工程:在dlg类里定义一个菜单指针m_pMenu,在对话框OnInitDialog函数里添加代码: m_pMenu=GetSystemMenu(FALSE);//获取系统菜单的指针 m_pMenu->AppendMenu(MF_SEPARATOR);//添加分割线 m_pMenu->AppendMenu(MF_STRING,IDI_PECULIARMENU,"系统菜单"); 补充:IDI_PECULIARMENU 为一个常数,需要在Resourece.h中宏

centos 7 在应用菜单中添加菜单项

gnome桌面的所有菜单项都存储如下位置: /usr/share/applications/ 新建一个菜单项,直接在该目录下新建一个后缀名为.desktop的文件即可. $ vi /usr/share/applications/newitem.desktop 文件内容如下: [Desktop Entry]Version=1.0Name=My ProgramIcon=/some/pathExec=/home/danny/some/path/myprog/progTerminal=falseType

Delphi通过AppendMenu和DeleteMenu在系统菜单中添加删除菜单项

Delphi在系统菜单中添加删除系统菜单项 Delphi在系统菜单中添加删除系统菜单项,利用Windows提供的API函数GetSystemMenu可以得到窗口的系统菜单句柄,再通过AppendMenu和DeleteMenu就可以添加和删除菜单了. 工具/原料 Delphi7 Windows电脑 方法/步骤 打开Delphi7,创建新的工程,默认新窗体的Name属性为Form1   在Form1的Object Inspector中Events里双击OnCreate为Form1创建OnCreate

CentOS7 系统菜单中添加快捷方式

一,在桌面新建一个文件 文件名随意,但必须带有.desktop的后缀名, 以Eclipse为例 vi /usr/share/applications/eclipse.desktop 二,在文件中写入如下内容 [Desktop Entry] Encoding=UTF-8 Name=Eclipse Comment=Eclipse IDE for C/C++ Exec=/home/workspace/eclipse/eclipse Icon=/home/workspace/eclipse/icon.x

如何在win10系统的开始菜单中添加“设备和打印机”

一些细心的用户会发现,win10和win7的"设备和打印机"的位置不一样.Win7的系统,在开始菜单中一般都会有"设备和打印机"这个选项,找到后直接打开就可以了,但是win10的这些快捷操作按钮却不见了.但是大家不要着急,小编这就教大家如何添加win10系统的"设备和打印机". 1.打开"控制面板",找到"硬件和声音",点击进去,然后再找到"设备和打印机": 2.在"设备和打印

[Firefox附加组件]0002.添加菜单项

Add-onSDK 还不能为火狐浏览器提供一个API添加新的菜单项.但它是可扩展的设计,所以任何人都可以建立和发布模块,使用插件开发者.大牛埃里克沃尔德写的MenuItems模块,能够使我们很方便的添加菜单项. 开发步骤 1.老规矩首先创建一个新的扩展程序.创建一个目录名称为"ItemTest"(自己随便取),并运行cfx init初始化 . mkdir ItemTest cd ItemTest cfx init 2.安装 menuitems [1].从https://github.c

Cocos2d-X中创建菜单项

Cocos2d-X中创建菜单的类: CCMenuItemFont:创建纯文本的菜单项 CCMenuItemAtlasFont:创建带有艺术字体的菜单项 CCMenuItemImage:用图片创建菜单项 CCMenuItemLabel:用标签创建菜单项 CCMenuItemSprite:用精灵创建菜单项 CCMenuItemToggle:创建可以来回切换的菜单项如ON/OFF 程序实例:创建一个纯文本菜单项 程序代码: #include "MenuItem.h" CCScene* Men