Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 21

Как обработать в MFC visual studio 2008 обработку нажатых клавиш?

16.10.2013, 16:47. Показов 3810. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как обработать в MFC visual studio 2008 обработку нажатых клавиш?
Создал основанное на диалогах приложение, выбрал форму, нашел на ней создание обработчиков событий для wm key down и wm char.
написал функции
void CTestDlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
и
void CTestDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
Но при запуске, появляется форма, нажимаю кнопки на клавиатуре ни одна функция не выполняется, точка останова тоже не срабатывает
Почему?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.10.2013, 16:47
Ответы с готовыми решениями:

Как установить MFC на Visual Studio 2008 Express Edition?
Как установить MFC на Visual Studio 2008 Express Edition?

Отличие сборок Visual Studio 2008 от Visual Studio 2010
Здравствуйте, товарищи! Пытаюсь собрать библиотеку libvbucket, используя Visual Studio 2008. Проблема в том, что библиотека...

Как подсоединить MFC AppWizard к С++ 9.0 Visual Studio ?
Подскажите пожалуйста где можно скачать MFC AppWizard для С++ 9.0 Visual Studio? В инете нашла только для С++ 6. И как его подсоединить?

8
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
16.10.2013, 17:27
C++
1
2
3
4
5
6
BOOL CBase::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message == WM_KEYDOWN)
                MessageBox("FFF");
    return CDialogEx::PreTranslateMessage(pMsg);
}
если вам надо на форму, т.к у нее нету фокуса для ввода..
0
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 21
16.10.2013, 18:37  [ТС]
Цитата Сообщение от Aloir Посмотреть сообщение
C++
1
2
3
4
5
6
BOOL CBase::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message == WM_KEYDOWN)
                MessageBox("FFF");
    return CDialogEx::PreTranslateMessage(pMsg);
}
если вам надо на форму, т.к у нее нету фокуса для ввода..
в прототипах класса CDialogEx есть виртуальная ф-я PreTranslateMessage, мне нужно значит указать
CDialogEx вместо CBase?

Добавлено через 4 минуты
Цитата Сообщение от assters Посмотреть сообщение
в прототипах класса CDialogEx есть виртуальная ф-я PreTranslateMessage, мне нужно значит указать
CDialogEx вместо CBase?
Проверил, все равно не обрабатывает
0
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
16.10.2013, 19:51
СBase - мой класс диалога унаследованный от CDialog.
да, вам нужно переопределить эту функцию.

если не получится, покажите ваш .h файл и .cpp
0
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 21
16.10.2013, 19:56  [ТС]
Спасибо
Файлы проекта
lab1ob.rar
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
16.10.2013, 20:00
Цитата Сообщение от assters Посмотреть сообщение
обработать в MFC
Цитата Сообщение от assters Посмотреть сообщение
выбрал форму,
я один ничего не понимаю

Добавлено через 55 секунд
Цитата Сообщение от assters Посмотреть сообщение
написал функции
void CTestDlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
и
void CTestDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
сам написал? или включил их в карту?
0
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 21
16.10.2013, 20:08  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
я один ничего не понимаю

Добавлено через 55 секунд

сам написал? или включил их в карту?
нет, выбрал в настройках формы создать обработчик для данных событий
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
16.10.2013, 20:47
Цитата Сообщение от assters Посмотреть сообщение
нет, выбрал в настройках формы создать обработчик для данных событий
в MFC нет форм
если ты имеешь ввиду диалог,то он и ловит твои сообщения, если в диалоге есть поле ввода(CEdit) то и лови у них а не у диалога, до диалога они не доходят(или перехватывай NOTIFY сообщения, но это уже другая тема)
0
 Аватар для Aloir
225 / 225 / 38
Регистрация: 17.12.2010
Сообщений: 713
17.10.2013, 10:33
Цитата Сообщение от assters Посмотреть сообщение
Спасибо
Файлы проекта
Вложение 317660
C++
1
virtual BOOL PreTranslateMessage(MSG* pMsg);
нету в lab1obDlg.h
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2013, 10:33
Помогаю со студенческими работами здесь

Окно со свойствами в проекте MFC, как в Visual Studio
Мне нужно окошечко свойств как в VisualStudio. Обязательно на MFC. Для этого я создал проект SDI со стилем Visual Studio. Там как раз было...

Visual Studio 2008 как в лесу
я не особо сильно в этом шарю, хотел бы спросить, может кто и знает? как в этом детище от микрософта к кнопке привязать ссылку ?? есть...

visual studio 2008 что и как
Пытаюсь перейти на VS2008 аж с VS6.0 1998 года. Кто пользовался, помогите разобраться Куда делась кнопка Compile ? жамкаю Build...

Как подключить Boost к Visual Studio 2008
Здравствуйте, подскажите пожалуйста как подключить boost к Visual Studio 2008. Хочу использовать его многопоточность в консольном...

Как подключить ресурс (картинку) в Visual Studio 2008 c++?
Добрый день. Я совсем не могу понять как использовать ресурсы... я создал через Visual Studio файл с ресурсами (app.rc) и туда накидал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru