Freigeben über


_SetMenuPoint( ), API-Bibliotheksroutine

Gibt die Bildschirmposition der oberen linken Ecke loc eines Menüs an.

void _SetMenuPoint(MENUID menuid, Point loc)
MENUID menuid;            /* Menu identifier. */
Point loc;                  /* Position of upper-left corner
 of the menu. */

Hinweise

Normalerweise wird ein Menü automatisch basierend auf seiner Größe und der Art, wie es von den Benutzern aufgerufen wurde, positioniert. Diese Routine wird zur Verfügung gestellt, um das automatische Positionieren durch eine eigene Positionierung zu ersetzen.

Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.

Beispiel

In diesem Beispiel wird ein Menü erstellt und anschließend an drei verschiedenen Bildschirmpositionen, angegeben durch _SetMenuPoint( ), aktiviert.

Visual FoxPro-Code

SET LIBRARY TO SETMNPNT

C-Code

#include <pro_ext.h>

FAR SetMenuPointEx(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);

   loc.v = 15; loc.h = 30;
   _SetMenuPoint(menuId, loc);
   _MenuInteract(&menuId, &itemId);

   loc.v = 20; loc.h = 40;
   _SetMenuPoint(menuId, loc);
   _MenuInteract(&menuId, &itemId);

   _DisposeMenu(menuId);
}

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

Siehe auch

_NewMenu( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API | _SetItemCmdKey( ), API-Bibliotheksroutine | _SetMenuPointP( ), API-Bibliotheksroutine