Новости



Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных.
Двадцатиление FoxPro! Microsoft принимает поздравления.
Visual FoxPro Toolkit for .NET - более 225 функций VFP 7.0, для языков .NET (подробнее)

fox00020.gif

В следующем примере создается меню, содержащее три элемента, и каждому из них азначается клавиша сокращения. Для отображения клавиш сокращения используется программа _GetItemCmdKey( ).

Код Visual FoxPro

SET LIBRARY TO GETICMDK

Код C

#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

};



Новое на сайте

  • Обновлен портфель программиста

    Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский)
  • Новые примеры программ

    Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2)
  • Обновленна справка

    Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.