_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