Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
 Аватар для ЛеЖиК)
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641

WM_KEYDOWN

27.08.2011, 21:25. Показов 3555. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
когда программе поступает сообщение WM_KEYDOWN обрабатываю его так
C++
1
HANDLE_MSG(hwnd,WM_KEYDOWN,OnKeydown);
дальше есть функция
C++
1
2
3
4
void OnKeydown(HWND hwnd,WPARAM wParam,LPARAM lParam)
{
    ....
}
но компилятор пишет ошибку
Code
1
error C2660: OnKeydown: функция не принимает 5 аргументов

какие 5 аргументов должны быть у функции?

Добавлено через 1 час 7 минут
и еще по ходу возник вопрос:
можно что б вся программа работала в основном потоке, а обработка сообщенией клавиатуры в другом
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.08.2011, 21:25
Ответы с готовыми решениями:

WM_KEYDOWN
на мсдн написано что функцию вызывать так, case WM_KEYDOWN: switch (wParam) { case VK_UP: // up was pressed...

Не отвечает на wm_keydown
procedure TBoard.WndProc(var msg: TMessage); //Оконная процедура. begin inherited WndProc(msg); case msg.Msg of ...

Не работает WM_KEYDOWN
Доброго времени суток! Возникла проблема: после нажатия на кнопку "New Game" программа почему-то перестает принимать сообщения с...

8
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
28.08.2011, 10:55
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
какие 5 аргументов должны быть у функции?
Вы вписали 5 аргументов там, где вызываете функцию.

Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
можно что б вся программа работала в основном потоке, а обработка сообщенией клавиатуры в другом
http://msdn.microsoft.com/en-u... 85%29.aspx
0
 Аватар для ЛеЖиК)
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
28.08.2011, 11:05  [ТС]
Цитата Сообщение от Евгений М. Посмотреть сообщение
Вы вписали 5 аргументов там, где вызываете функцию.
где пять?я уверенно вижу 3.

спасибо за ссылку.но у меня вопрос в другом.можноли обрабатывать сообщения в разных потоках.
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
28.08.2011, 11:40
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
где пять?я уверенно вижу 3.
Покажите.
0
 Аватар для ЛеЖиК)
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
28.08.2011, 11:58  [ТС]
C++
1
2
3
4
void OnKeydown(HWND hwnd, // 1
WPARAM wParam, //2
LPARAM lParam //3
)
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
28.08.2011, 14:11
Это не то. То что Вы показали - это как объявили. Я попросил - как вызвали.
Т.е. это так объявили:
C++
1
2
3
4
double f(double x)
{
// тело функции
}
это так вызвали:
C++
1
f(2.5);
0
 Аватар для ЛеЖиК)
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
28.08.2011, 22:06  [ТС]
ну вызвал я его с помощью макроса hangle_msg


я еще чуть чуть погуглил и разобрался
а вообще вот тут написано хорошо про этот макрос

 Комментарий модератора 
Ссылки на сторонние форумы запрещены


Добавлено через 44 минуты
извеняюсь за ссылку, но посмотри про этот макрос в яндексе, очень удобная штука
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
29.08.2011, 06:27
Поменяйте объявление OnKeydown на такую:
C++
1
void OnKeydown(HWND hwnd, UINT wParam, BOOL smt, int lParam1, UNIT lParam2)
smt - всегда TRUE
lParam1 = (int)(short)LOWORD(lParam)
lParam2 = (UINT)HIWORD(lParam)

Подробности в файле windowsx.h
1
 Аватар для ЛеЖиК)
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
29.08.2011, 09:34  [ТС]
Евгений М., спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.08.2011, 09:34
Помогаю со студенческими работами здесь

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

Не работает WM_KEYDOWN
Здравствуите , понимаю что таких тем много , читал и пробывал но все грустно . И вроде есть HANDLE_MSG(WM_KEYDOWN) как его объявить и...

Не работает WM_KEYDOWN
Помогите плиз. Вот кусок кода в оконной процедуре: ... case WM_KEYDOWN: switch (wParam) { case VK_LEFT: if(MatrLine == 2)...

Буквенные клавиши WM_KEYDOWN
Добрый вечер. Как в WM_KEYDOWN определить, является ли нажатая клавиша буквенной/циферной/символьной, или нет?

WM_KEYDOWN и WM_HOTKEY конфликтуют?
После того, как я регистрирую несколько хоткеев, я не могу перехватывать сообщение WM_KEYDOWN. Вот упрощенный исходник того, что я...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru