在Delphi中使用API​​ Win32启用检查菜单项

我的问题在这个代码菜单项被禁用,然后在控制应用程序中传递代码“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); 

使用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;