_GetItemText( ) (Rutina de biblioteca API)
Copia el texto de una barra de menús o de un título de menú al búfer indicado por text.
void _GetItemText(MENUID menuid, ITEMID itemid, char FAR *text)
MENUID menuid; /* Menu identifier. */
ITEMID itemid; /* Menu item identifier. */
char FAR *text; /* Buffer address for text. */
Observaciones
El búfer debe tener una longitud mínima de 80 bytes.
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 y, a continuación, recupera el texto de cada elemento con _GetItemText( ).
Código Visual FoxPro
SET LIBRARY TO GETITEXT
Código C
#include <pro_ext.h>
FAR GetItemTextEx(ParamBlk FAR *parm)
{
MENUID menuId;
ITEMID itemId;
Point loc;
char FAR *itemText;
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);
if ((itemText = _Alloca(80)) == 0)
{
_Error(182); // "Insufficient memory"
}
_GetItemText(menuId, _GetItemId(menuId, 0), itemText);
_PutStr("\nItem text of 1st item = "); _PutStr(itemText);
_GetItemText(menuId, _GetItemId(menuId, 1), itemText);
_PutStr("\nItem text of 2nd item = "); _PutStr(itemText);
_GetItemText(menuId, _GetItemId(menuId, 2), itemText);
_PutStr("\nItem text of 3rd item = "); _PutStr(itemText);
_Execute("WAIT WINDOW");
_DisposeMenu(menuId);
}
FoxInfo myFoxInfo[] = {
{"ONLOAD", (FPFI) GetItemTextEx, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Vea también
_GetItemSubMenu( ) (Rutina de biblioteca API) | _NewItem( ) (Rutina de biblioteca API) | _SetItemText( ) (Rutina de biblioteca API) | Acceso a la API de Visual FoxPro