在 Inno Setup 中将图标图像添加到上下文菜单
Adding an icon image to context menu in Inno Setup
我正在使用此处的脚本向我的 Inno 设置页面添加一些上下文菜单:
有什么方法可以为每个菜单项添加图标图像吗?
[Code]
const
IMAGE_BITMAP = 0;
LR_LOADFROMFILE = ;
LR_CREATEDIBSECTION = 00;
function LoadImage(
hInst: Integer; ImageName: string; ImageType: UINT; X, Y: Integer;
Flags: UINT): THandle; external 'LoadImageW@User32.dll stdcall';
function SetMenuItemBitmaps(
hMenu: THandle; uPosition: Cardinal; uFlags: Cardinal;
hBitmapUnchecked: THandle; hBitmapChecked: THandle): Boolean;
external 'SetMenuItemBitmaps@User32.dll stdcall';
procedure AddMenuItem(
Menu: THandle; Position: Integer; ID: Integer; Caption: string;
ImageFileName: string);
var
Bitmap: THandle;
begin
InsertMenu(Menu, Position, MF_BYPOSITION or MF_STRING, ID, Caption);
ExtractTemporaryFile(ImageFileName);
Bitmap := LoadImage(
0, ExpandConstant('{tmp}\') + ImageFileName, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE or LR_CREATEDIBSECTION);
SetMenuItemBitmaps(Menu, Position, MF_BYPOSITION, Bitmap, Bitmap);
end;
在 :
的代码中使用 AddMenuItem
而不是 InsertMenu
调用
AddMenuItem(PopupMenu, 0, ID_MUTE, 'Mute', 'mute.bmp');
AddMenuItem(PopupMenu, 1, ID_STOP, 'Stop', 'stop.bmp');
以上显然假设您已将透明位图图像添加到安装程序中:
[Files]
Source: "mute.bmp"; Flags: dontcopy
Source: "stop.bmp"; Flags: dontcopy
我已经使用 PixelFormer 创建了透明的 .bmp 图像。
我正在使用此处的脚本向我的 Inno 设置页面添加一些上下文菜单:
有什么方法可以为每个菜单项添加图标图像吗?
[Code]
const
IMAGE_BITMAP = 0;
LR_LOADFROMFILE = ;
LR_CREATEDIBSECTION = 00;
function LoadImage(
hInst: Integer; ImageName: string; ImageType: UINT; X, Y: Integer;
Flags: UINT): THandle; external 'LoadImageW@User32.dll stdcall';
function SetMenuItemBitmaps(
hMenu: THandle; uPosition: Cardinal; uFlags: Cardinal;
hBitmapUnchecked: THandle; hBitmapChecked: THandle): Boolean;
external 'SetMenuItemBitmaps@User32.dll stdcall';
procedure AddMenuItem(
Menu: THandle; Position: Integer; ID: Integer; Caption: string;
ImageFileName: string);
var
Bitmap: THandle;
begin
InsertMenu(Menu, Position, MF_BYPOSITION or MF_STRING, ID, Caption);
ExtractTemporaryFile(ImageFileName);
Bitmap := LoadImage(
0, ExpandConstant('{tmp}\') + ImageFileName, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE or LR_CREATEDIBSECTION);
SetMenuItemBitmaps(Menu, Position, MF_BYPOSITION, Bitmap, Bitmap);
end;
在
AddMenuItem
而不是 InsertMenu
调用
AddMenuItem(PopupMenu, 0, ID_MUTE, 'Mute', 'mute.bmp');
AddMenuItem(PopupMenu, 1, ID_STOP, 'Stop', 'stop.bmp');
以上显然假设您已将透明位图图像添加到安装程序中:
[Files]
Source: "mute.bmp"; Flags: dontcopy
Source: "stop.bmp"; Flags: dontcopy
我已经使用 PixelFormer 创建了透明的 .bmp 图像。