Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
1

Вопрос по PostMessage

24.10.2010, 18:00. Показов 1344. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В продолжение темы Вопрос по работе WaitForSingleObject
Этот факт нужен лишь тем, кто указанную тему читал. Тем, кто не читал, вкратце сделаю постановку гипотетической задачи, описывающей, зачем это нужно

Допустим есть несколько устройств, на которые приходят какие-то данные. Программа работает так, что на обработку данных с каждого устройства выделяется один поток. Каждый поток анализирует пришедшие данные и в какой-то момент понимает, что там есть "что-то интересное". Поток должен выдать на GUI'ёвый компонент (например Memo) сообщение типа "на устройстве N5 есть интересные данные 0x10 0x20 0x30" после чего продолжать дальше анализировать входной поток. А основной процесс занимается тем, что принимает от потоков такие сообщения и помещает их в Memo. Точный порядок неважен (т.е. в пределах короткого интервала времени без разницы что в каком порядке напечатано). Важно лишь то, чтобы все данные были отображены. Тормоза при отображении данных некритичны. Т.е. если поток болтался в ожидании, пока главный процесс соизволить принять данные, а в это время на устройство пришло что-то интересное и мы это прощёлкали - не страшно
Работаю на Borland'е. Сейчас для отправки сообщения из потока в главный процесс я использую PostMessage, при этом в качестве Handle использую Handle окна (TForm->Handle). А в классе окна описан обработчик события:

C++
1
2
3
4
    void __fastcall WM_OnUserMessage (TMessage &msg);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER (WM_USER, TMessage, WM_OnUserMessage)
END_MESSAGE_MAP (TForm)
Теперь хотелось бы поставить обработчик события, который бы НЕ был привязан ни к какой из компонент. Т.е., грубо говоря, создать какой-то Handle, висящий в воздухе, к которому был бы привязан обработчик событий
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2010, 18:00
Ответы с готовыми решениями:

PostMessage
Не могу понять куда вводить координату Y. Если ввожу так: postmessage(h2,WM_LBUTTONDOWN,0,120);...

PostMessage
Доброго дня. Слал через PostMessage кнопки и беды не знал. PostMessage(h, WM_KEYDOWN, Ord('1'),...

PostMessage VS Win 10
На данной версии ОС,напрочь отказываются работать PostMessage, ни кто не сталкивался?

не работает PostMessage
Добрый день. Пытаюсь написать перехватчик клавиатуры используя SetWindowsHookEx. В классе...

2
Эксперт С++
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
26.10.2010, 11:48 2
Под handle вы имеете ввиду первый аргумент ф-ции PostMessage ? То есть, хендл главного окна GUI, к-рому высылается сообщение ?
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
26.10.2010, 13:08  [ТС] 3
Цитата Сообщение от Andrew_Lvov Посмотреть сообщение
Под handle вы имеете ввиду первый аргумент ф-ции PostMessage ? То есть, хендл главного окна GUI, к-рому высылается сообщение ?
Не "хендл главного окна GUI", а просто "хэндл окна GUI" (в моём случае это не главное окно). А так да - хэндл окна
0
26.10.2010, 13:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2010, 13:08
Помогаю со студенческими работами здесь

PostMessage, SendMessage
Здравствуйте. Вопрос такой: я посылаю сообщения PostMessage и SendMessage в свернутое окно чужой...

PostMessage и SendMessage
В общем такая проблема.... отправляю сообщение: PostMessage (hWnd, 1001, 1, (LPARAM)&cds);...

PostMessage и windows 7
В хп работает стабильно, в семёрке не хочет, кто нибудь сталкивался?

Postmessage WinApi
Добрый день форумчане. Вообщем задача такая: Через программу написаную на Delphi открыть...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru