有关windows外壳扩展context menu handlers问题??(100分)

  • 主题发起人 主题发起人 kiss2
  • 开始时间 开始时间
K

kiss2

Unregistered / Unconfirmed
GUEST, unregistred user!
function TContextMenu.QueryContextMenu(Menu: HMENU; indexMenu, idCmdFirst,
idCmdLast, uFlags: UINT): HResult;
var asubmenu:integer;
begin
FMenuIdx := indexMenu;
// if ((uFlags and $0000000F) = CMF_NORMAL) or
// ((uFlags and CMF_EXPLORE) <> 0) then begin
asubmenu:=CreateMenu;//CreatePopupMenu;

InsertMenu(asubmenu,FMenuIdx,MF_BYPOSITION or MF_STRING, idcmdfirst+1,'no1');
InsertMenu(asubmenu,FMenuIdx,MF_BYPOSITION or MF_STRING, idcmdfirst+2,'no2');

InsertMenu(menu, FMenuIdx,MF_BYPOSITION or MF_STRING or MF_Popup , asubmenu,'Command');
InsertMenu(menu, FMenuIdx,MF_BYPOSITION or MF_STRING ,idcmdfirst,'Command2');
// DestroyMenu(asubmenu);
Result := 4;//FMenuIdx + 1;
end;

这段是增加菜单的,执行后没有错误,但是在<我的电脑>中多按几次菜单中的文件,
你就会发现,按几次,Command菜单项就增加几个,而command2没有,我想这和
asubmenu:=CreateMenu这句有关吧,是不是要FREE掉,但又不知道在哪里FREE好?
不知道怎么搞?
 
可能是控制uFlags来区别 右键单击和按菜单中的文件
 
后退
顶部