Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Sets both the keyboard shortcut for the specified menu item, and the displayed text for the keyboard shortcut.
void _SetItemCmdKey(MENUID menuid, ITEMID itemid, int key,
char FAR *text)
MENUID menuid; /* Menu identifier. */
ITEMID itemid; /* Menu item identifier. */
int key; /* Shortcut key. */
char FAR *text; /* Displayed text. */
Remarks
If you don't want to display a keyboard shortcut, pass text as a pointer to a null string. If you want the system to generate the default displayed text, pass (char FAR *)0.
For more information on how to create an API library and integrate it with Visual FoxPro, see Accessing the Visual FoxPro API.
Example
The following example sets up a menu with three items and assigns a keyboard shortcut to each item.
Visual FoxPro Code
SET LIBRARY TO SETICMDK
C Code
#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 onSelection(long menuId, long itemId)
{
_PutStr("\nitemId = "); putLong(itemId);
_DisposeMenu(menuId);
}
FAR SetItemCmdKeyEx(ParamBlk FAR *parm)
{
MENUID menuId;
ITEMID itemId;
Point loc;
menuId = _GetNewMenuId();
_NewMenu(MPOPUP, menuId);
itemId = _GetNewItemId(menuId);
_NewItem(menuId, itemId, -2, "\\<1st item");
_SetItemCmdKey(menuId, itemId, altKey | 0x178, "Alt+1");
itemId = _GetNewItemId(menuId);
_NewItem(menuId, itemId, -2, "\\<2nd item");
_SetItemCmdKey(menuId, itemId, altKey | 0x179, "Alt+2");
itemId = _GetNewItemId(menuId);
_NewItem(menuId, itemId, -2, "\\<3rd item");
_SetItemCmdKey(menuId, itemId, altKey | 0x17a, "Alt+3");
loc.v = 10; loc.h = 20;
_SetMenuPoint(menuId, loc);
_ActivateMenu(menuId);
_OnSelection(menuId, -1, onSelection);
}
FoxInfo myFoxInfo[] = {
{"ONLOAD", (FPFI) SetItemCmdKeyEx, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
See Also
_GetItemCmdKey( ) API Library Routine | _GetItemId( ) API Library Routine | Accessing the Visual FoxPro API | _SetItemSubMenu( ) API Library Routine | _SetItemText( ) API Library Routine