_DisposeItem( ), API-Bibliotheksroutine

Löscht das angegebene Menüereignis aus dem Speicher und gibt den mit diesem Ereignis verbundenen Speicherplatz frei.

void _DisposeItem(MENUID menuid, ITEMID itemid)
MENUID menuid;            /* Menu identifier. */
ITEMID itemid;            /* Menu item identifier. */

Hinweise

_DisposeItem( ) gibt keine Untermenüs frei, die mit dem Ereignis verbunden sind.

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. Anschließend werden zwei der Ereignisse mit _DisposeItem( ) entfernt.

Visual FoxPro-Code

SET LIBRARY TO DISPITEM

C-Code

#include <pro_ext.h>

FAR DisposeItemEx(ParamBlk FAR *parm)
{
   MENUID menuId;
   ITEMID itemId;
   Point loc;

   menuId = _GetNewMenuId();
   _NewMenu(MPOPUP, menuId);

   itemId = _GetNewItemId(menuId);
   _NewItem(menuId, itemId, -2, "\\<1st item");

   itemId = _GetNewItemId(menuId);
   _NewItem(menuId, itemId, -2, "\\<2nd item");

   itemId = _GetNewItemId(menuId);
   _NewItem(menuId, itemId, -2, "\\<3rd item");

   loc.v = 10; loc.h = 20;
   _SetMenuPoint(menuId, loc);

   _ActivateMenu(menuId);
   _Execute("WAIT WINDOW 'Menu has three items'");

   _DisposeItem(menuId, _GetItemId(menuId, 1));
   _Execute("WAIT WINDOW 'Menu has two items'");

   _DisposeItem(menuId, _GetItemId(menuId, 0));
   _Execute("WAIT WINDOW 'Menu has one item'");

   _DisposeMenu(menuId);
}
FoxInfo myFoxInfo[] = {
   {"ONLOAD", (FPFI) DisposeItemEx, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Siehe auch

_NewItem( ), API-Bibliotheksroutine | _GetItemId( ), API-Bibliotheksroutine | Aktivieren und Deaktivieren von Menüelementen | Erstellen von Menüs, Kontextmenüs, Menüelementen und Untermenüs