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

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

16.10.2013, 16:47. Показов 3792. Ответов 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
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
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
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru