Share via


_GetNewItemId( ) (Rutina de biblioteca API)

Devuelve un identificador que actualmente está disponible para su uso como identificador de elemento en el menú especificado.

ITEMID _GetNewItemId(MENUID menuid)
MENUID menuid;            /* Menu identifier. */

Observaciones

Todos los elementos de un menú deben tener un identificador que sea exclusivo para ese menú.

Tras utilizar _GetNewItemId( ), anexe el nuevo elemento al menú con _NewItem( ) antes de volver a utilizar _GetNewItemId( ). Si no anexa el elemento al menú, las llamadas posteriores a _GetNewItemId( ) devuelven el mismo ITEMID.

Para obtener más información acerca de cómo crear una biblioteca API e integrarla con Visual FoxPro, vea Acceso a la API de Visual FoxPro.

Ejemplo

El siguiente ejemplo crea un menú con tres elementos. Antes de que se agregue cada elemento al menú, se genera un ITEMID único mediante una llamada a _GetNewItemId( ).

Código Visual FoxPro

SET LIBRARY TO GETNWIID

Código C

#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, "\\<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);

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

Vea también

_GetItemId( ) (Rutina de biblioteca API) | Acceso a la API de Visual FoxPro | _SetItemText( ) (Rutina de biblioteca API) | _NewItem( ) (Rutina de biblioteca API) | _GetNewMenuId( ) (Rutina de biblioteca API)