Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

OnKeyDOwn

2.0K
27 января 2005 года
A.D.I.D.A.S
52 / / 23.11.2004
Подскажите плиз:
мне нужно сделать чтобы при нажатии курсорных клавиш(на диалоговой панели) производились определенные действия...
я делаю так:
 
Код:
void CdrawtestDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
    if(nChar==VK_DOWN) MessageBox("gg");
}

но почему-то именно курсорные клавиши не хотят работать, а все остальные работают...
368
27 января 2005 года
rostyslav
629 / / 13.07.2004
можешь переопределить PreTranslateMessage, напр.
 
Код:
BOOL CChAbbr::PreTranslateMessage(MSG* pMsg)
{
  if(pMsg->message==WM_KEYDOWN)
  {
    if(pMsg->wParam==VK_LEFT)
...
4.9K
28 января 2005 года
CyberMan
55 / / 25.01.2005
Цитата:
Originally posted by A.D.I.D.A.S

 
Код:
void CdrawtestDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
    if(nChar==VK_DOWN) MessageBox("gg");
}

но почему-то именно курсорные клавиши не хотят работать, а все остальные работают...


У MFC nChar это код поэтому вместо VK_DOWN можно использовать этот код. Для курсорных клавиш это(37,38,39,40) Правда именно для диалоговой панели я не пробовал но на обычном окне такая штука прокатывает в частности для класса вида.
Только вот фишка такая возникает для символьных клавиш можно использовать сами символы типа: nChar=='V' только прокатывает именно если писать только так и от регистра нажатой клавиши результат зависеть не будет а если написать nChar=='v' то при нажатии этой клавиши прога реагироать не будет. Че энто такое я сам не понял.

2.0K
29 января 2005 года
A.D.I.D.A.S
52 / / 23.11.2004
Через числа все равно не получается...
А вот через переопределение PreTranslateMessage нормально... Спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог