OberonCore
https://forum.oberoncore.ru/

Как обрабатывать сообщения Windows WM_... из модуля?
https://forum.oberoncore.ru/viewtopic.php?f=1&t=788
Страница 1 из 1

Автор:  Edward Ivanov [ Среда, 19 Декабрь, 2007 16:39 ]
Заголовок сообщения:  Как обрабатывать сообщения Windows WM_... из модуля?

Ситуация таков: есть кассовый аппарат, к нему подключен сканер. При сканировании посылается сообщения типа WM_USER + ...
Вопрос: как можно обработать такой случай из модуля в Блэкбоксе? Куда копать?
В Delphi это решается вполне тривиально.

Автор:  Илья Ермаков [ Среда, 19 Декабрь, 2007 17:58 ]
Заголовок сообщения:  Re: Как обрабатывать сообщения Windows WM_... из модуля?

Даю наводку, откуда копать.
Главный цикл приложения: модуль HostMenus, процедура Loop. Далее сообщения диспетчируются, как и положено, на главное окно - его обработчик ApplWinHandler в том же модуле.
Как прикрутить обработку прямо туда - очевидно. Однако, само собой, хочется не трогать системные модули, а решить дело хоть и "хаком", но "чистым". Вот тут с ходу не скажу - если WM_USER доходит до главного окна (позабыл уже эти ньюанси винды :-) ) - то повесить на него подставную процедуру-обработчик, которая его будет перехватывать. С помощью SetWidnowLong. Если решите работать "чисто" - то а) посмотрите, идёт WM_USER до главного окна б) если да, то пример установки перехватчиков (и других "трюков" в окнами ББ) есть в библиотеке Mt, модуль MtWindows (oberoncore.ru/Компоненты).

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/