Страница: 1 |
Вопрос: Как обработать НАЖАТИЯ, подавляя стандарт.действия | Добавлено: 12.08.04 04:53 |
Автор вопроса: ![]() |
Игровая программа типа ТЕТРИС имеет такой обработчик НАЖАТИЙ:
Private Sub Form_KeyDown(KeyCode As _ Integer, Shift As Integer) Select Case KeyCode Case vbKeyLeft: Влево Case vbKeyRight: MsgBox "Вправо" 'и т.п. Case Else MsgBox " Не туда жмешь ;-)" End Select End Sub При этом если на форме есть другие элементы типа Батон или ПанельИнстр - обработчик НЕ РАБОТАЕТ т.к. на СТРЕЛКИ срабатывет "пунктир" НА ЭЛЕМЕНТАХ. Какой выход? Есть ли другой анализ нажатий кроме построенного на константах типа vbKakajaToKlavisha |
Ответы | Всего ответов: 15 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ICQ: 295002202 Вопросов: 87 Ответов: 1684 |
Профиль | Цитата | #1 | Добавлено: 12.08.04 06:12 |
Ответ на второй вопрос ("...другой анализ нажатий кроме построенного на константах типа vbKakajaToKlavisha "![]() Можно заместо констант подставлять соответствующее число! ![]() А если серьезно, то попробуй АПИ функции Declare Function GetKeyboardState Lib "user32.dll" (pbKeyState As Byte) As Long Declare Function GetKeyNameText Lib "user32.dll" Alias "GetKeyNameTextA" ( _ ByVal lParam As Long, _ ByVal lpBuffer As String, _ ByVal nSize As Long) As Long Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 334781088 Вопросов: 108 Ответов: 2822 |
Профиль | Цитата | #2 | Добавлено: 12.08.04 08:34 |
Ну или включит Numlock и играться с малой клавиатуры ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 12.08.04 14:37 |
RegisterHotKey |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 12.08.04 14:46 |
2RaScal, Не пойдет, а если уже зарезервированы кнопки ?
Если уж пошли на перечисления, то от себя могу добавить SetWindowsHookEx ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 326066673 Вопросов: 368 Ответов: 5968 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 12.08.04 16:33 |
А если цифровой клавиатуры нет? Например, на ноутбуках отсутствует напрочь... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 12.08.04 17:44 |
to sne: не видел я прог, чтоб стрелки хотили, а про SetWindowsHookEx я тоже подумал, но потом вспомнил, что это твоя прерогатива, и решил не упоминать ![]() |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 1249088 Вопросов: 10 Ответов: 304 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 12.08.04 18:17 |
2 Zanuda
Можно ли запихнуть твой Тетрис в PictureBox (использовать его вместо формы), и возвращать фокус картинке при событияк кнопок mouseUp? |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 12.08.04 19:17 |
Ra$cal, ![]() А вообще, прикнь игрушку свернут, и начнут на калькуляторе считать или по любому другому поводу на кнопки давить, это же жуть что в игрушке получится ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 12.08.04 21:52 |
А KeyPreview разве не спасает??? |
Номер ответа: 10 Автор ответа: ![]() ![]() Вопросов: 11 Ответов: 120 |
Профиль | Цитата | #10 | Добавлено: 12.08.04 23:25 |
Мождет сделать так :
1- Tabstop = false или 2- на ЛостФокус Пиктура поставить СетФокус Пиктура |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 13.08.04 00:24 |
Спасает, ну да разве этот способ достоин настоящих программеров ![]() Иван человеков был простой человек, Такой как я или ты. И если на пути встречалась гора, Он не пытался ее обойти ![]() _________________________________(гр. Кино) |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 13.08.04 01:01 |
Что то я непомню у неё такой песни. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 13.08.04 01:51 |
значит наутилус ![]() ![]() |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 326066673 Вопросов: 368 Ответов: 5968 |
Web-сайт: Профиль | Цитата | #14 | Добавлено: 13.08.04 06:47 |
Ну вот, и здесь оффтопят... Жаль плюсомета под рукой нет ![]() |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 334781088 Вопросов: 108 Ответов: 2822 |
Профиль | Цитата | #15 | Добавлено: 13.08.04 08:22 |
Хм, а по-моему KeyPreview все же не спасает. Проверено. |
Страница: 1 |
|