Поиск:

Ответ в темуСоздание новой темы Создание опроса
> каждое нажатие звенит, непонятно почему. мышкой - нет. 
:(
    Опции темы
bilbobagginz
Дата 18.6.2007, 05:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



есть програмка, с диалоговым окном, в ней есть кнопки.
можно нажимать на кнопки мышком, или клавой.
если жмем мышой, все хорошо.

но по непонятным мне причинам в моей программке ( после того как мне сообщил юзверь ), каждое нажатие клавиатуры сопровождается звонком, идентичным системным предпупреждениям.

как мне его изжить ?



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Nuzur
Дата 18.6.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 4.7.2004

Репутация: 3
Всего: 5



bilbobagginz, ну ставь волум в ноль smile а вообще-то юзверь скорее всего накрутил что-то с вентой и ты навряд поправиш, имхо лезть в настройки венты у юзверя не по понятиям, ибо одному нормально а другой и обидеться может.


--------------------
Never again...
PM MAIL   Вверх
Coocky
Дата 18.6.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Цитата(bilbobagginz @  18.6.2007,  05:43 Найти цитируемый пост)
но по непонятным мне причинам в моей программке ( после того как мне сообщил юзверь ), каждое нажатие клавиатуры сопровождается звонком, идентичным системным предпупреждениям.

Только в твоей программе?



--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
jonie
Дата 18.6.2007, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



я б спросил "только на винде юзера" ?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
bilbobagginz
Дата 19.6.2007, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



нет. проблема не в винде. есть люди, у которых звуки винды отключены. ( как я),
а есть такие, которые используют наборы звуков.
вот у таких, каждое нажатие на клаву, В МОЕЙ программе вызывает звук.

хелп.



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Dronchik
Дата 19.6.2007, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: нет
Всего: 37



Поройся в коде, поищи MessageBeep-ы мож где какое зацикливание произошло.


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
Coocky
Дата 19.6.2007, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



А как организовывад взаимодействие с клавиатурой?
Через таблицу акселераторов?


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
W4FhLF
Дата 19.6.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: нет
Всего: 121



Есть возможность выложить программу?


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Coocky
Дата 19.6.2007, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Цитата(W4FhLF @  19.6.2007,  11:08 Найти цитируемый пост)
Есть возможность выложить программу?

 smile 
А скажите -ка мне лучше-где (у меня 2000) можно или надо ВКЛЮЧИТЬ этот самый звук, что б при нажатии клавиши бипикал?


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Coocky
Дата 19.6.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Незнаю.. Только что зашел в настройки звука. Выбрал звуковую схему.Включил ВСЕ звуки, на любой чих. При открывании окна,закрывании, смены фокуса. Ну вообщем все , что было -включил. Сделал обработку нажатия клавиш через таблицу акселераторов. Нажимал миллион раз-ничего не БИПИКАЕТ smile) Хотя остальные действия сопроваждались звяканьем..
Как ты делал нажатие клавиши?


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
bilbobagginz
Дата 19.6.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



acceleratorы не юзал.
в файле .h диалога, который хапает клавиши добавил:
Код

    virtual BOOL PreTranslateMessage(MSG* pMsg);

в файле .cpp диалога, добавил:
Код

BOOL CМойКрутойDlg::PreTranslateMessage(MSG* pMsg){
    LPARAM lparm=pMsg->lParam;
    WPARAM wparm=pMsg->wParam;
    // TODO: Add your specialized code here and/or call the base class
    if (NULL==pMsg) return FALSE;
    if (WM_KEYUP==(pMsg->message)){
//д/Винграда: сл. вызов перводит одно число в другое, не может повлият на БИП.
        int button_idx=Char2Idx((int)wparm);

        if (button_idx>=0&&button_idx<32){
// д/Винграда: сл. вызов делает нескольким регионам InvalidateRect()
            UpdateButton(button_idx); 
        }

    }
    return CDialog::PreTranslateMessage(pMsg);
}

ну т.е. перегрузил переводчика: "тугезер бикоуз, арнольд шварценеггер" (copyright Комеди Клаб)




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
zkv
Дата 19.6.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



предположение: если возвращать TRUE - то дальнейшей обработки не будет, и пищания следовательно тоже. Сам не могу проверить сейчас.
Цитата(MSDN)

Return Value
Nonzero if the message was fully processed in PreTranslateMessage and should not be processed further. Zero if the message should be processed in the normal way.


Отвлекаясь от темы:
может стоит поменять местами:
Цитата(bilbobagginz @  19.6.2007,  12:35 Найти цитируемый пост)
    LPARAM lparm=pMsg->lParam;
    WPARAM wparm=pMsg->wParam;

и
Цитата(bilbobagginz @  19.6.2007,  12:35 Найти цитируемый пост)
   if (NULL==pMsg) return FALSE;

 smile 
PM MAIL   Вверх
Coocky
Дата 19.6.2007, 13:07 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



bilbobagginz, 
Ну так заюзай акселераторы. Там работы на 5 мин. Просто добавить в таблицу сооствествующим кнопкам  соотествующие клавиши.
Могу дать пример за одну минуту smile
Цитата(zkv @  19.6.2007,  12:53 Найти цитируемый пост)
предположение: если возвращать TRUE - то дальнейшей обработки не будет, и пищания следовательно тоже. Сам не могу проверить сейчас.

Нормальное логическое предположение. Если системе указать, что ничего не произошло,то вроде как и не должно быть дальнейшей обработкой системы этого нажатия. Но я противник таких методов. Все должно быть честно smile

Добавлено через 8 минут и 10 секунд
Цитата(bilbobagginz @  19.6.2007,  12:35 Найти цитируемый пост)
if (WM_KEYUP==(pMsg->message))

Фиг его знает, может из-за этого. Ведь нажатие клавиши-WM_CHAR т.е. WM_KEYUP+WM_DOWN
Мож винда как-то по соему там рулит отпускание клавиши и настройки звуковой схемы. Вообщем я б так не делал. smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
bilbobagginz
Дата 19.6.2007, 13:38 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: нет
Всего: 317



zkv, чего-то я не слабо стормозил с:
Код

    LPARAM lparm=pMsg->lParam;
    WPARAM wparm=pMsg->wParam;
    // TODO: Add your specialized code here and/or call the base class
    if (NULL==pMsg) return FALSE;

спасибо!  smile  smile  smile  +1

A вообще это "физически" возможно, чтобы этот метод вызвала система, и дала ему ( NULL== pMsg) ?
нужна эта проверка вообще ?

насчет возвращения TRUE дело вот в чем: если я буду возвращать TRUE, то все сообщения будут дальше не обрабатываться.

Цитата

Фиг его знает, может из-за этого. Ведь нажатие клавиши-WM_CHAR т.е. WM_KEYUP+WM_DOWN

Coocky,  smile  smile  smile +1

сделал так:
Код

    LPARAM lparm=-1;
    WPARAM wparm=-1;
    if (NULL==pMsg) return FALSE;
    lparm=pMsg->lParam;
    wparm=pMsg->wParam;
    if (WM_CHAR==(pMsg->message)){

        int button_idx=Char2Idx((int)wparm);
        if (button_idx>=0&&button_idx<32){
            UpdateButton(button_idx);
        }
        return TRUE;
    }
        return CDialog::PreTranslateMessage(pMsg);




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Coocky
Дата 19.6.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Ну и? Работает? smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.