DestroyMenu之后内存为什么没有减少 ( 积分: 30 )

  • 主题发起人 主题发起人 sujing1982
  • 开始时间 开始时间
S

sujing1982

Unregistered / Unconfirmed
GUEST, unregistred user!
try
PopupMenu := CreatePopupMenu;
AppendMenu(PopupMenu,MF_ENABLED or MF_STRING, ID_MEU_WIN, NAME_MEU_WIN);
AppendMenu(PopupMenu,MF_ENABLED or MF_STRING, ID_MEU_POP, NAME_MEU_POP);
SetForegroundWindow(WinHandle);
GetCursorPos(MousePos);
TrackPopupMenu(PopupMenu,TPM_LEFTALIGN or TPM_LEFTBUTTON,
MousePos.X, MousePos.Y, 0, WinHandle, nil);
finally
DestroyMenu(PopupMenu);
end;
CreatePopupMenu 之后内存明显增加
DestroyMenu(PopupMenu) 之后却没看到内存减少 怎样才能把他占用的内存释放掉
分很少了 大虾们见谅.
 
用FreeAndNil(PopupMenu)
 
PopupMenu 是个句柄。
内存好象是在TrackPopupMenu的时候增加的 怎么释放掉呢??
 
PopupMenu和控件自身的属性重名,重名的对象可能造成编译器识别错误,操作的具体对象就不明了了,建议改局部的PopupMenu变量名为APopupMenu,然后再试.
 
但是我并没有用任何控件,
uses
windows;
没有引用任何单元,窗体都是用api建的
 
先把他的所有子菜单释放就可以释放了
for i:=0 toPopupMenu.Items.Count-1 do
begin
PopupMenu.Items.Free;
end;
end;
 
后退
顶部