Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Returns the menu identifier that corresponds to the system-defined literal for the system menu or menu title.
MENUID _MenuId(long literal)
long literal; /* System-defined literal. */
Remarks
Literals are defined in the API include file PRO_EXT.H.
For more information on how to create an API library and integrate it with Visual FoxPro, see Accessing the Visual FoxPro API.
Example
The following example adds a menu title to the system menu. It then attaches a drop-down menu with two items on it. _MenuId( ) is used to obtain the MENUID of the system menu.
Visual FoxPro Code
SET LIBRARY TO MENUID
C Code
#include <pro_ext.h>
MENUID SysMenuId;
MENUID PopupId;
ITEMID PadId;
void putLong(long n)
{
Value val;
val.ev_type = 'I';
val.ev_long = n;
val.ev_width = 10;
_PutValue(&val);
}
FAR onSelection(long menuId, long itemId)
{
_PutStr("\nitemId = "); putLong(itemId);
}
void FAR StartUp()
{
ITEMID Bar1Id;
ITEMID Bar2Id;
int Error;
// Add new menu title to SYSMENU.
SysMenuId = _MenuId(_SYSMENU);
PadId = _GetNewItemId(SysMenuId);
if (_NewItem(SysMenuId, PadId, _LASTITEM, "\\<Added menu title"))
{
_Error(623); /* "Menu item cannot be defined." */
}
// Define menu.
PopupId = _GetNewMenuId();
if (Error = _NewMenu(MPOPUP, PopupId))
{
_Error(-Error);
}
Bar1Id = _GetNewItemId(PopupId);
// WARNING: Call _NewItem() before another _GetNewItemId().
if (_NewItem(PopupId, Bar1Id, _LASTITEM, "\\<1st item"))
{
_Error(623); /* "Menu item cannot be defined." */
}
Bar2Id = _GetNewItemId(PopupId);
if (_NewItem(PopupId, Bar2Id, _LASTITEM, "\\<2nd item"))
{
_Error(623); /* "Menu item cannot be defined." */
}
// Attach menu to menu title
_SetItemSubMenu(SysMenuId, PadId, PopupId);
// Set up selection action.
_OnSelection(PopupId, -1, onSelection);
}
void FAR ShutDown()
{
_DisposeItem(SysMenuId, PadId);
_DisposeMenu(PopupId);
}
FoxInfo myFoxInfo[] = {
{"STARTUP", (FPFI) StartUp, CALLONLOAD,""},
{"SHUTDOWN", (FPFI) ShutDown, CALLONUNLOAD, ""},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
See Also
SYS(1500) - Activate a System Menu Item | _GetNewMenuId( ) API Library Routine | System Menu Names | _MenuInteract( ) API Library Routine