⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 把窗体的系统菜单添加到窗体的菜单条上.txt

📁 delphi 编程技巧
💻 TXT
字号:
把窗体的系统菜单添加到窗体的菜单条上 (2001年5月22日) 

本站更新  分类:系统   作者:  推荐:   阅读次数:123  
(http://www.codesky.net)  

--------------------------------------------------------------------------------
把窗体的系统菜单添加到窗体的菜单条上

procedure TForm1.Button3Click(Sender: TObject);
var
item: TMenuItem;
sysmenuHandle: HMENU;
i, itemcount: Integer;
buffer: array [0..128] of Char;
itemID: Integer;
itemflags: DWORD;
begin
handleNeeded;
//得到系统菜单的handle
sysmenuHandle := GetSystemMenu( handle, false );
If sysmenuHandle <> 0 Then 
Begin
//得到系统菜单的个数 
itemcount := GetMenuItemcount( sysmenuHandle );
for i:= 0 to itemcount - 1 do 
begin
//得到指定菜单项的当前状态 
itemflags := GetMenuState( sysmenuhandle, i, MF_BYPOSITION );
//如果是横线
If (itemflags and MF_SEPARATOR) = MF_SEPARATOR Then
item := NewLine
Else Begin
//得到指定菜单项的Caption 
GetMenuString( sysmenuhandle, i, buffer, sizeof(buffer),MF_BYPOSITION );
//得到指定菜单的在系统菜单中的ID
itemID := GetMenuItemID( sysmenuhandle, i );
//创建新的MenuItem
item := NewItem( buffer, 0,
(itemflags and MF_CHECKED) = MF_CHECKED,
(itemflags and (MF_DISABLED or MF_GRAYED)) = 0,
SystemMenuClick,
0,
format('Sysmenu_%d',[itemid]));
item.tag := itemID;
End;
systemmenu.Add( item );
end;
End;
end;

procedure TForm1.SystemMenuClick(Sender: TObject);
begin
With Sender As TMenuitem do 
Self.perform( WM_SYSCOMMAND, Tag, 0 );
end; 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -