這是我的代碼,除了圖示
procedure TForm1.FormCreate(Sender: TObject);
var item : TMenuItemInfo;
begin
with item do
begin
cbSize := SizeOf(MenuItemInfo);
fMask := MIIM_TYPE or MIIM_ID;
fType := MFT_STRING;
wID := 180;
dwTypeData := PChar('Test');
cch := 4;
hbmpItem := Image1.Picture.Bitmap.Handle; //Image1 is TImage
end;
InsertMenuItem(GetSystemMenu(Handle, FALSE),0,true,item);
end;
uj5u.com熱心網友回復:
幾個問題:
您
TMenuItemInfo在使用前不清除實體。進行呼叫時,未分配的欄位可能包含無效或錯誤的資料。用
ZeroMemory(@item, SizeOf(item));在程式開始時。
您擁有的
fMask和fType成員的組合不正確。改用以下內容
fMask := MIIM_STRING or MIIM_BITMAP or MIIM_ID; // fType := MFT_STRING;也就是說,不要分配
fType
這是測驗的示例片段,其中 aTImage 保存在橙色背景上描繪數字 2 的影像。這將作為圖示添加到新選單項中。(這是你的問題)

根據要求添加測驗代碼:
// Note! Your `Image1` must have a bitmap loaded
procedure TForm39.AddSystemMenuItem;
var
item : TMenuItemInfo;
begin
ZeroMemory(@item, SizeOf(item));
with item do
begin
cbSize := SizeOf(MenuItemInfo);
fMask := MIIM_STRING or MIIM_BITMAP or MIIM_ID;
// fType := MFT_STRING;
wID := 180;
dwTypeData := PChar('Test');
cch := 4;
hbmpItem := Image1.Picture.Bitmap.Handle; //Image1 is TImage
end;
if not InsertMenuItem(GetSystemMenu(Handle, FALSE),0,true,item) then
ShowMessage('Failed');
end;
procedure TForm39.Button1Click(Sender: TObject);
begin
AddSystemMenuItem;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/322341.html
下一篇:Delphijson陣列不帶括號
