Страница: 1 |
Страница: 1 |
Вопрос: Как обработать НАЖАТИЯ, подавляя стандарт.действия
Добавлено: 12.08.04 04:53
Автор вопроса: Zanuda
Игровая программа типа ТЕТРИС имеет такой обработчик НАЖАТИЙ:
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
Автор ответа:
ZagZag
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
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #2
Добавлено: 12.08.04 08:34
Ну или включит Numlock и играться с малой клавиатуры Не забыв поставить KeyPreview=True.
Номер ответа: 3
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #3
Добавлено: 12.08.04 14:37
RegisterHotKey
Номер ответа: 4
Автор ответа:
sne
Разработчик 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
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #6
Добавлено: 12.08.04 17:44
to sne: не видел я прог, чтоб стрелки хотили, а про SetWindowsHookEx я тоже подумал, но потом вспомнил, что это твоя прерогатива, и решил не упоминать
Номер ответа: 7
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #7
Добавлено: 12.08.04 18:17
2 Zanuda
Можно ли запихнуть твой Тетрис в PictureBox (использовать его вместо формы), и возвращать фокус картинке при событияк кнопок mouseUp?
Номер ответа: 8
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #8
Добавлено: 12.08.04 19:17
Ra$cal, )
А вообще, прикнь игрушку свернут, и начнут на калькуляторе считать или по любому другому поводу на кнопки давить, это же жуть что в игрушке получится
Номер ответа: 9
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #9
Добавлено: 12.08.04 21:52
А KeyPreview разве не спасает???
Номер ответа: 10
Автор ответа:
Eddie
Вопросов: 11
Ответов: 120
Профиль | | #10
Добавлено: 12.08.04 23:25
Мождет сделать так :
1- Tabstop = false
или
2- на ЛостФокус Пиктура поставить СетФокус Пиктура
Номер ответа: 11
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #11
Добавлено: 13.08.04 00:24
Спасает, ну да разве этот способ достоин настоящих программеров )
Иван человеков был простой человек,
Такой как я или ты.
И если на пути встречалась гора,
Он не пытался ее обойти
_________________________________(гр. Кино)
Номер ответа: 12
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #12
Добавлено: 13.08.04 01:01
Что то я непомню у неё такой песни.
Номер ответа: 13
Автор ответа:
sne
Разработчик 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
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #15
Добавлено: 13.08.04 08:22
Хм, а по-моему KeyPreview все же не спасает. Проверено.