var
vFormHandle: THandle;
vMenuHandle: HMENU;
begin
vFormHandle := FindWindow('Notepad', nil);
if vFormHandle = 0 then Exit;
vMenuHandle := GetMenu(vFormHandle);
if vMenuHandle = 0 then Exit;
vMenuHandle := GetSubMenu(vMenuHandle, 0);
EnableMenuItem(vMenuHandle, 0,
MF_BYPOSITION or MF_DISABLED or MF_GRAYED);
DrawMenuBar(vFormHandle);
end;
EnableMenuItem(childmenu,0,(MF_DISABLED and MF_BYPOSITION));
DrawMenuBar(childmenu);
或
EnableMenuItem(TestMenu,0,(MF_DISABLED and MF_BYPOSITION));
DrawMenuBar(TestMenu);
//屏蔽"记事本"的File菜单,测试通过
//注意:不是and是or
//DrawMenuBar()参数是窗体句柄不是菜单
procedure TForm1.Button1Click(Sender: TObject);
var
vFormHandle: THandle;
vMenuHandle: HMENU;
begin
vFormHandle := FindWindow('Notepad', nil);
if vFormHandle = 0 then Exit;
vMenuHandle := GetMenu(vFormHandle);
if vMenuHandle = 0 then Exit;
EnableMenuItem(vMenuHandle, 0,
MF_BYPOSITION or MF_DISABLED or MF_GRAYED);
DrawMenuBar(vFormHandle);
end;
to zswang(伴水清清)(专家门诊清洁工)
用下面的语句可以禁用和变灰"文件"菜单:
TestForm:= Findwindow(nil,PChar(Temp_Name));
TestMenu:=GetMenu(TestForm);
EnableMenuItem(TestMenu,0,MF_BYPOSITION or MF_DISABLED or MF_GRAYED);
DrawMenuBar(TestForm);
但我想禁用"文件"菜单下的一个功能相(菜单相),而不是整个"文件"菜单,如"新建",用下面的语句就不行了:
TestForm:= Findwindow(nil,PChar(Temp_Name));
TestMenu:=GetMenu(TestForm);
childmenu:=getsubmenu(TestMenu,0);
EnableMenuItem(childmenu,0,MF_BYPOSITION or MF_DISABLED or MF_GRAYED);
DrawMenuBar(TestForm);
是怎么回事情呢?