_GetItemText( ), API-Bibliotheksroutine
Kopiert den Text einer Menüleiste oder eines Menünamens in den Puffer, auf den durch text verwiesen wird.
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. */
Hinweise
Die Länge des Puffers muss mindestens 80 Bytes betragen.
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 wird der Text jedes Ereignisses mit _GetItemText( ) abgerufen.
Visual FoxPro-Code
SET LIBRARY TO GETITEXT
C-Code
#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
};
Siehe auch
_GetItemSubMenu( ), API-Bibliotheksroutine | _NewItem( ), API-Bibliotheksroutine | _SetItemText( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API