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
В | Copy Code |
---|---|
SET LIBRARY TO MENUID |
C Code
В | Copy 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 }; |