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;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
i := getsystemmenu(handle,false);
appendmenu(i,mf_separator,0,nil);
appendmenu(i,mf_string,100,‘我的菜单(&E)‘);
end;

procedure TForm1.sysmenu(var msg: twmmenuselect);
begin
if msg.IDItem = 100 then
  showmessage(‘您选择了自己添加的菜单!‘)
else
  inherited;
end;

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 ,则所有系统菜单都不能用。

http://blog.csdn.net/zang141588761/article/details/51992368

时间: 2024-10-21 08:19:39

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

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

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