Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Predlegion
3 / 3 / 0
Регистрация: 21.01.2011
Сообщений: 27
#1

Отправка и обработка пользовательских сообщений - C++

09.10.2011, 01:54. Просмотров 835. Ответов 3
Метки нет (Все метки)

Задача стоит в том, чтобы выйти из CALLBACK'а с помощью сообщения.
Дело в том что вызов определенной функции в CALLBACK'е ведет к зависанию программы(потому что эта функция может стать предпосылкой этого самого CALLBACK'а).
Поэтому принято решение выходить из него с помощью SendMessage и выполнять все необходимые действия.

Но к сожалению, я никогда не сталкивался с посылкой и обработкой сообщений(особенно пользовательских) ,поэтому не знаю как его послать и обработать. Надеюсь на помощь форумчан по этому вопросу.Хотелось раз и навсегда с эти разобраться.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2011, 01:54     Отправка и обработка пользовательских сообщений
Посмотрите здесь:

Программирование пользовательских функций C++
C++ Обработка исключений в классах для пользовательских типов
C++ Создание пользовательских функций
C++ Создание пользовательских функций
C++ Преобразование пользовательских типов
Преобразование пользовательских классов C++
C++ Создание пользовательских типов
WinApi и обработка сообщений мыши C++
C++ Преобразование пользовательских типов
C++ Обработка массивов данных с использование пользовательских функций
Обработка двумерного массива с использование пользовательских функций C++
отправка сообщений по TCP на одном компьютере C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
09.10.2011, 02:55     Отправка и обработка пользовательских сообщений #2
слишком размыто...
поясните на примере что вы хотите сделать.
покажите колбек функцию и вызывающую функцию.
Predlegion
3 / 3 / 0
Регистрация: 21.01.2011
Сообщений: 27
09.10.2011, 14:23  [ТС]     Отправка и обработка пользовательских сообщений #3
Мне не хотелось бы выкладывать много кода,тем более я понимаю как тяжело разбираться в чужом коде.

Что это за функции:

В моей программе идет работа со звуковой картой с помощью функций семейства waveInOpen(...),waveInStart(...) waveInAddBuffer(...) итд .
Так вот, когда буфер заполняется, вызывается этот CALLBACK,внутри которого идет обработка буфера звуковой карты. В одном из случев ,по окочанию этого CALLBACK необходимо вызвать функцию waveInReset() или waveInStop().
Но проблема заключается в том,что НЕЛЬЗЯ вызывать функции waveInReset() или waveInStop() из "тела" CALLBACK'а, потому что это ведет к зависанию программы(об этом написано в MSDN).

Но можно вызвать эту функцию из любого другого места,главное что не из CALLBACK.

Поэтому в теле CALLBACK нужно отправив сообщение. А затем ,в обработчике сообщений вызвать эти функции waveInReset() и waveInStop().

Но как отравить и обработать сообщение неизвестно.

Делаю:
C++
1
2
3
4
5
HWND hmes;
const int MY_MESS=WM_USER+1;
.....
.....
SendMessage(hmes,MY_MESS,0,0)ж
а как написать обработчик сообщения не знаю. И вообще не уверен,что правильно отправляю.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
09.10.2011, 16:49     Отправка и обработка пользовательских сообщений #4
посмотри
http://vsokovikov.narod.ru/New_MSDN_...ostmessage.htm
может поможет?
Yandex
Объявления
09.10.2011, 16:49     Отправка и обработка пользовательских сообщений
Ответ Создать тему
Опции темы

Текущее время: 00:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru