Links are not active on this page.
 _SetItemSubMenu( ) API Library Routine

Assigns a submenu to the specified menu item.

void _SetItemSubMenu(MENUID menuid, ITEMID itemid, 
                        MENUID submenuid)
MENUID menuid;            /* Menu identifier. */
ITEMID itemid;            /* Menu item identifier. */
MENUID submenuid;         /* Submenu identifier. */

Expand imageRemarks

You can use _SetItemSubMenu( ) to attach a menu to a menu title or to a submenu to a menu item.

For more information on how to create an API library and integrate it with Visual FoxPro, see Accessing the Visual FoxPro API.

Expand imageExample

The following example adds a menu title to the system menu. Using _SetItemSubMenu( ), it then attaches a menu with two items to this menu title.

Visual FoxPro Code

 CopyCode imageCopy Code
SET LIBRARY TO SETISUBM

C Code

 CopyCode imageCopy 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
};

Expand imageSee Also