当菜单项为禁用时,我在此代码中出现问题,然后将控制应用程序中的代码“PostMessage”传递给崩溃,因为我需要检查菜单项目已启用,然后使用PostMessage。
HandleMenu:= GetMenu(ParentAppHandle);
HandleMenu:= GetSubMenu(HandleMenu, 6 {menu item no});
item:= GetMenuItemID(HandleMenu , 12 {sub menu item no});
PostMessage(ParentAppHandle, WM_COMMAND, MakeWParam(item, 0), 0);
答案 0 :(得分:2)
使用WinAPI函数GetMenuState。
示例:
var
State: UINT;
begin
State:= GetMenuState(HandleMenu , 12, MF_BYPOSITION);
if (State and (MF_DISABLED or MF_GRAYED)) = 0 then
begin
// Menu Item is enabled
end
else
begin
// Menu Item is disabled
end;