Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: www.rascalspb.narod.ru
 Профиль | | #3
Добавлено: 12.08.04 14:37
RegisterHotKey

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 12.08.04 14:46
2RaScal, Не пойдет, а если уже зарезервированы кнопки ?
Если уж пошли на перечисления, то от себя могу добавить SetWindowsHookEx :)

Ответить

Номер ответа: 5
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #5
Добавлено: 12.08.04 16:33
А если цифровой клавиатуры нет? Например, на ноутбуках отсутствует
напрочь...

Ответить

Номер ответа: 6
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #6
Добавлено: 12.08.04 17:44

to sne: не видел я прог, чтоб стрелки хотили, а про SetWindowsHookEx я тоже подумал, но потом вспомнил, что это твоя прерогатива, и решил не упоминать ;)

Ответить

Номер ответа: 7
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #7
Добавлено: 12.08.04 18:17
2 Zanuda
Можно ли запихнуть твой Тетрис в PictureBox (использовать его вместо формы), и возвращать фокус картинке при событияк кнопок mouseUp?

Ответить

Номер ответа: 8
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #8
Добавлено: 12.08.04 19:17
Ra$cal, :))
А вообще, прикнь игрушку свернут, и начнут на калькуляторе считать или по любому другому поводу на кнопки давить, это же жуть что в игрушке получится :)

Ответить

Номер ответа: 9
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #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-сайт: hw.t-k.ru
 Профиль | | #11
Добавлено: 13.08.04 00:24
Спасает, ну да разве этот способ достоин настоящих программеров :))

Иван человеков был простой человек,
Такой как я или ты.
И если на пути встречалась гора,
Он не пытался ее обойти :)
_________________________________(гр. Кино)

Ответить

Номер ответа: 12
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #12
Добавлено: 13.08.04 01:01
 Что то я непомню у неё такой песни.

Ответить

Номер ответа: 13
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #13
Добавлено: 13.08.04 01:51
значит наутилус :) даже не значит а точно :)

Ответить

Номер ответа: 14
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #14
Добавлено: 13.08.04 06:47
Ну вот, и здесь оффтопят... Жаль плюсомета под рукой нет :(

Ответить

Номер ответа: 15
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #15 Добавлено: 13.08.04 08:22
Хм, а по-моему KeyPreview все же не спасает. Проверено.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам