Freigeben über


_GetItemSubMenu( ), API-Bibliotheksroutine

Gibt den Menüeintragsbezeichner eines Untermenüs zurück, der einem Menüeintrag zugeordnet ist.

MENUID _GetItemSubMenu(MENUIDmenuid, ITEMIDitemid);
MENUIDmenuid;            /* Menu identifier */
ITEMIDitemid;            /* Menu item identifier*/

Hinweise

Ein Untermenü wird wie ein eigenständiges Menü behandelt. _GetItemSubMenu( ) gibt den Wert MENUID des Untermenüs zurück, das einem angegebenen Menüeintrag zugewiesen ist. Wenn dem Menüeintrag kein Untermenü zugewiesen ist, wird -1 zurückgegeben.

Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.

Beispiel

Im folgenden Beispiel wird ein Menüsystem erstellt und das Handle des Untermenüs zurückgegeben.

Visual FoxPro-Code

SET LIBRARY TO GETITEMS

C-Code

#include <pro_ext.h>

MENUID SysMenuId, retMenuId;
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);

  _PutStr("\nSubMenu Id = "); putLong(PopupId);

//
//  Set up selection action.
//
   retMenuId = _GetItemSubMenu(SysMenuId,PadId);
   _PutStr("\nThis is the return value from  _GetItemSubMenu.  retMenuId = "); putLong(retMenuId);

   _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
};

Siehe auch

_GetItemId( ), API-Bibliotheksroutine | _NewItem( ), API-Bibliotheksroutine | _SetItemText( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API