This will be shown to users with no Flash or Javascript.
Урок IV
Связывание событий с элементами управления
Связывание кода с событием WM_KEYDOWN клавиатуры
При нажатии на клавишу будет появляться окно сообщения, которое будет показывать ее флаг.
Чтобы связать код с событием WM_KEYDOWN, выполните следующие действия:
Выберете ClassWizard в меню View
Выберете закладку Message Maps в панели ClassWizard
Используйте диалоговую панель ClassWizard для выбора следующего события:
Class Name: CMyKeyDlg
Object ID: CMyKeyDlg
Messages: WM_KEYDOWN
Щелкните на кнопку Add Fucntion и в раскрывшемся окне нажмите кнопку OK.
Сейчас ваша панель MFC ClassWizard должна будет выглядеть так:

Нажмите кнопку Edit Code и напишите следующий код в функции OnKeyDown():
void CMyKeyDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
////Мой код начинается здесь////
char strnChar[10];
char strnRepCnt[10];
char strnFlags[10];
CString strKeyPressed;
itoa(nChar, strnChar, 10);
itoa(nRepCnt, strnRepCnt,10);
itoa(nFlags, strnFlags, 10);
strKeyPressed=(CString)"You pressed the key: "+
"\n"+"nChar="+
strnChar+
"\n"+"
nReptCnt="+
strnRepCnt+
"\n"+
"nFlags="+
strnFlags;
MessageBox(strKeyPressed);
////Мой код заканчивается здесь////
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
Взгляните на параметры функции OnKeyDown:
(UINT nChar, UINT nRepCnt, UINT nFlags)
Первым параметром является nChar, который показывает код нажатой клавиши.
Вторым параметром является nRepCnt, представляет число повторных нажатий на клавишу. Например, если вы долго удерживаете клавишу B, то этот параметр сохранит кол-во нажатий на эту клавишу.
Третий параметр - nFlags представляет число нажатой специальной клавишы(такие как ALT, SHIFT).
Код, который вы ввели объявляет три строки:
char strnChar[10];
char strnRepCnt[10];
char strnFlags[10];
Они будут хранить значения переменных nChar, nRepCnt, nFlags соответственно.
Затем вы объявили переменную strKeyPressed типа CString.
CString strKeyPressed;
Затем, в конце программы, вы присваиваете этой переменной значение строки, которая будет выведена в собщении.
После этого, с помощью оператора itoa вы присваивате переменным strnChar, strnRepCnt, strnFlags числовые значения соответсвующих переменных. Функция itoa переводит число в текстовую строку.
Рассмотрим следующие три строки:
itoa(nChar, strnChar, 10);
itoa(nRepCnt, strnRepCnt,10);
itoa(nFlags, strnFlags, 10);
Первым аргументом функции itoa, является чисовая переменная, которую надо перевести.
Вторым аргументом является переменная типа char, в нее будет записываться число.
Третий аргументом - число, показывающее систему счисления числовой переменной, к примеру число 10 - это десятичная С/C, значит число nChar или л.д десятичное.
Теперь, кога все три переменные сохранены как строки, вы можете их все связать в строке strKetPressed:
strKeyPressed=(CString)"You pressed the key: "+
"\n"+"nChar="+
strnChar+
"\n"+"
nReptCnt="+
strnRepCnt+
"\n"+
"nFlags="+
strnFlags;
MessageBox(strKeyPressed);
Знак /n - это перевод каретки, символ новой строки.
Теперь, когда все переменные увязаны в одной тестовой переменной, мы можем вывести ее на экран с помощью функции:
MessageBox(strKeyPressed);
Аргумент этой функции есть текст, который будет показан в окне сообщения.
Поэксперементируйте с программой MyKey и щелкните на значек x для ее прекращения.
Вы закончили связывание событий с элементами управлени