Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kopiert die angezeigte Zeichenfolge der Tastenkombination für den angegebenen Menüeintrag in den Puffer, auf den der text-Parameter zeigt.
int _GetItemCmdKey(MENUID menuid, ITEMID itemid, char FAR *text)
MENUID menuid; /* Menu identifier. */
ITEMID itemid; /* Menu item identifier. */
char FAR *text; /* Where to store the shortcut string. */
Hinweise
_GetItemCmdKey( ) gibt die interne Verknüpfung für die Tastenkombination zurück. Wenn es für den angegebenen Menüeintrag keine Tastenkombination gibt, wird von _GetItemCmdKey( ) der Wert 0 zurückgegeben.
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. Für jedes Ereignis wird eine Tastenkombination festgelegt. Die Tasten der Tastenkombination werden mit Hilfe von _GetItemCmdKey( ) angezeigt.
Visual FoxPro-Code
SET LIBRARY TO GETICMDK
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 GetItemCmdKeyEx(ParamBlk FAR *parm)
{
MENUID menuId;
ITEMID itemId;
Point loc;
char FAR *shortcutString;
int intKeyCode;
menuId = _GetNewMenuId();
_NewMenu(MPOPUP, menuId);
itemId = _GetNewItemId(menuId);
_NewItem(menuId, itemId, -2, "\\<1st item");
_SetItemCmdKey(menuId, itemId, altKey | 0x78, "Alt+1");
itemId = _GetNewItemId(menuId);
_NewItem(menuId, itemId, -2, "\\<2nd item");
_SetItemCmdKey(menuId, itemId, altKey | 0x79, "Alt+2");
itemId = _GetNewItemId(menuId);
_NewItem(menuId, itemId, -2, "\\<3rd item");
_SetItemCmdKey(menuId, itemId, altKey | 0x7a, "Alt+3");
loc.v = 10; loc.h = 20;
_SetMenuPoint(menuId, loc);
_ActivateMenu(menuId);
if ((shortcutString = _Alloca(64)) == 0)
{
_DisposeMenu(menuId);
_Error(182); // "Insufficient memory"
}
intKeyCode = _GetItemCmdKey(menuId, _GetItemId(menuId, 0),
shortcutString);
_PutStr("\nShortcut string = "); _PutStr(shortcutString);
_PutStr("\nInternal key code ="); putLong(intKeyCode);
intKeyCode = _GetItemCmdKey(menuId, _GetItemId(menuId, 1),
shortcutString);
_PutStr("\nShortcut string = "); _PutStr(shortcutString);
_PutStr("\nInternal key code ="); putLong(intKeyCode);
intKeyCode = _GetItemCmdKey(menuId, _GetItemId(menuId, 2),
shortcutString);
_PutStr("\nShortcut string = "); _PutStr(shortcutString);
_PutStr("\nInternal key code ="); putLong(intKeyCode);
_Execute("WAIT");
_DisposeMenu(menuId);
}
FoxInfo myFoxInfo[] = {
{"ONLOAD", (FPFI) GetItemCmdKeyEx, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_GetItemSubMenu( ), API-Bibliotheksroutine | _NewItem( ), API-Bibliotheksroutine | _SetItemCmdKey( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API