_GetItemId( ) (Rutina de biblioteca API)

Devuelve el identificador del elemento especificado en el menú indicado.

ITEMID _GetItemId(MENUID menuid, long index)
MENUID menuid;            /* Menu identifier. */
long index;                  /* Menu item number. */

Observaciones

Puede utilizar _GetItemId( ) para reunir identificadores de barra de menús o de menús, de manera que pueda ejecutar una operación en todos los elementos. _GetItemId( ) devuelve 0 cuando index supera el número de elementos del menú.

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. Utiliza _GetItemId( ) para obtener el ITEMID de cada elemento de menú. Tras eliminar un elemento del menú, puede ver que el ITEMID no siempre es igual al índice del elemento.

Código Visual FoxPro

SET LIBRARY TO GETIID  

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 GetItemIdEx(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);

   _PutStr("\nitemid for index 0 ="); putLong(_GetItemId(menuId, 0));
   _PutStr("\nitemid for index 1 ="); putLong(_GetItemId(menuId, 1));
   _PutStr("\nitemid for index 2 ="); putLong(_GetItemId(menuId, 2));

   _Execute("WAIT WINDOW");
   _DisposeItem(menuId, _GetItemId(menuId, 1));

   _PutStr("\nitemid for index 0 ="); putLong(_GetItemId(menuId, 0));
   _PutStr("\nitemid for index 1 ="); putLong(_GetItemId(menuId, 1));

   _Execute("WAIT WINDOW");
   _DisposeMenu(menuId);
}

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

Vea también

_GetItemSubMenu( ) (Rutina de biblioteca API) | _GetNewItemId( ) (Rutina de biblioteca API) | Acceso a la API de Visual FoxPro | NewItemID (Propiedad)