Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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