_NewItem( ), API-Bibliotheksroutine
Fügt dem durch die Menü-ID menuid angegebenen Menü einen Eintrag mit der ID itemid hinzu.
int _NewItem(MENUID menuid, ITEMID itemid, ITEMID beforeid, char FAR *prompt)
MENUID menuid; /* Menu identifier. */
ITEMID itemid; /* New item identifier. */
ITEMID beforeid; /* Identifier of item the new item
precedes. */
char FAR *prompt; /* Text for new menu item. */
Hinweise
Als Typ des neuen Menüeintrags wird, je nach Typ des Menüs, automatisch ein Menütitel bzw. eine Menüleiste festgelegt, je nach Typ des Menüs, in das der Eintrag eingefügt wurde.
Der beforeid-Parameter gibt die ID-Nummer des Eintrags an, die dem neuen Eintrag folgt. Geben Sie für beforeid den Wert -1 an, um anzuzeigen, dass der neue Eintrag der erste Eintrag in der Liste ist, oder geben Sie -2 an, um anzuzeigen, dass der Eintrag am Ende der Liste hinzugefügt wird. Der prompt-Parameter gibt den Text des neuen Menüeintrags an. _NewItem( ) gibt 0 zurück, wenn das Hinzufügen des Eintrags erfolgreich war. Andernfalls wird der Wert –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ü mit drei Ereignissen erstellt. _NewItem( ) wird verwendet, um dem Menü die einzelnen Einträge hinzuzufügen.
Visual FoxPro-Code
SET LIBRARY TO NEWITEM
C-Code
#include <pro_ext.h>
void putLong(long n)
{
Value val;
val.ev_type = 'I';
val.ev_long = n;
val.ev_width = 10;
_PutValue(&val);
}
FAR GetNewItemId(ParamBlk FAR *parm)
{
MENUID menuId;
ITEMID itemId;
Point loc;
menuId = _GetNewMenuId();
_NewMenu(MPOPUP, menuId);
itemId = _GetNewItemId(menuId);
_NewItem(menuId, itemId, -2, "\\<2nd item");
itemId = _GetNewItemId(menuId);
_NewItem(menuId, itemId, -1, "\\<1st item");
itemId = _GetNewItemId(menuId);
_NewItem(menuId, itemId, -2, "\\<3rd item");
loc.v = 10; loc.h = 20;
_SetMenuPoint(menuId, loc);
_MenuInteract(&menuId, &itemId);
_PutStr("\nmenuId ="); putLong(menuId);
_PutStr("\nitemId ="); putLong(itemId);
_DisposeMenu(menuId);
}
FoxInfo myFoxInfo[] = {
{"ONLOAD", (FPFI) GetNewItemId, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_SetItemCmdKey( ), API-Bibliotheksroutine | _SetItemSubMenu( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API