Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Izhachok
3 / 3 / 0
Регистрация: 29.04.2011
Сообщений: 34
#1

Обработка WM_KEYDOWN и WM_KEYUP в диалоговом окне - C++

23.04.2012, 21:19. Просмотров 1805. Ответов 3
Метки нет (Все метки)

С толкнулся с проблемой того, что в диалоге требуется обработка клавиатуры!
Однако как оказалось диалог их не ловит!
Есть ли способ как нибудь решить эту проблему?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2012, 21:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка WM_KEYDOWN и WM_KEYUP в диалоговом окне (C++):

Вызов оконной функции в диалоговом окне - C++
есть Добавлено через 7 минут есть программа с диалоговым окном и программа с оконной функцией, надо чтобы при нажатии кнопки в...

Проблема с фоновыми действиями в диалоговом окне - C++
Имеется диалоговое окно. По нажатию кнопки Старт в нём запускаются длительные подсчёты. Пока процесс не закончится, окно диалога не...

Создание табуляции, MFC в диалоговом окне - C++
Помогите разобратся плиз! вот собственно код,нужно создать чтобы считало по формуле вот формулы e в степени x+tg*(x) #include...

Как создать кнопку CButton и CEdit на стандартном диалоговом окне - C++
Пожалуйста, подскажите как создать кнопку CButton и CEdit на стандартном диалоговом окне? В MSDN написано так: CButton myButton1; ...

WM_KEYUP и WM_KEYDOWN - C++ WinAPI
Пожалуйста помогите разобратся с WM_KEYUP и WM_KEYDOWN вчем разница и для чего они нужны, просто мне надо передать сообщение программе с...

WM_KEYUP, WM_KEYDOWN - C++/CLI WinForms
Прошу о помощи! Задача: пользователь вводит парольную фразу (одну из предложенных) в текстбокс.Необходимо зафиксировать время удержания...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Avazart
Эксперт С++
7185 / 5359 / 280
Регистрация: 10.12.2010
Сообщений: 23,650
Записей в блоге: 17
23.04.2012, 21:22 #2
Создать свое диалоговое окно
0
Izhachok
3 / 3 / 0
Регистрация: 29.04.2011
Сообщений: 34
23.04.2012, 21:49  [ТС] #3
Эммм... ну в общем-то я в своём и обрабатывал, а точнее пытался! При нажатии на клавишу в диалог не приходит сообщение WM_KEYDOWN и WM_KEYUP!!!
При чём при работе как с модальным так и с не модальным, видимо проблема не в фокусе!><

Добавлено через 18 минут
Оу нашёл ответ, может кому понадобиться!^^
Нашёл туточки

http://www.programmersheaven.com/mb/...ens-in-dialog/

А решение в общем-то тривиально!=Р

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while (GetMessage(&clTalkWithPeople::Msg,NULL,0,0))
    {
        if (clTalkWithPeople::Msg.message == WM_KEYDOWN ||
            clTalkWithPeople::Msg.message == WM_KEYUP)
            SendMessage(clTalkWithPeople::hControlDlg, clTalkWithPeople::Msg.message, 
            clTalkWithPeople::Msg.wParam, clTalkWithPeople::Msg.lParam);
 
        if(!IsDialogMessage(clTalkWithPeople::hOpenProgramDlg, &clTalkWithPeople::Msg) 
        && !IsDialogMessage(clTalkWithPeople::hControlDlg, &clTalkWithPeople::Msg))
        {
            TranslateMessage(&clTalkWithPeople::Msg);
            DispatchMessage(&clTalkWithPeople::Msg);
        }
    }
2
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
23.04.2012, 22:12 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если надо несколько клавиш, то можно через hotkey.
1. Регистрируем hotkey (пример - под №1 регистриуем клавишу alt+стрелка вверх):
C++
1
RegisterHotKey(hwnd,1,MOD_ALT,VK_UP);
2. Отлавливаем сообщение
C++
1
    case WM_HOTKEY:
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2012, 22:12
Привет! Вот еще темы с ответами:

Хук клавиатуры - как отличать события WM_KEYDOWN и WM_KEYUP при зажатой ALT? - C++ WinAPI
Сделал хук для клавиатуры, столкнулся с проблемой: при зажатой клавише ALT перестают генерироваться события WM_KEYDOWN или по крайней мере...

Обработка сообщения WM_KEYUP с комбинацией клавиш CTRL+A - C++ WinAPI
Добрый день! Столкнулся с проблемой обработки сообщения WM_KEYUP при использовании сочетания клавиш CTRL+A. В Mfc диалоге я создал...

Обработка WM_KEYDOWN в диалоге - C++ WinAPI
Имеется диалог с одной кнопкой, которая имеет фокус ввода и поэтому форма не получает сообщения. Как изменить фокус ввода или перехватить...

Список в диалоговом окне - Visual C++
У меня есть диалоговое окно со списком(идентификатор например IDC_LIST). Список инициализируется а так же заносятся новые записи. Мне...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.04.2012, 22:12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru