События чужого окна?

Раздел посвящен программированию с использованием Power Basic.
Lapex
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 64
Зарегистрирован: 25.02.2008 (Пн) 14:01

События чужого окна?

Сообщение Lapex » 10.03.2010 (Ср) 23:43

Привет Всем!

Пожалуйста помогите советом, как правильно поступить.

Использую DLL, которая создает специфическое окно.
Мне нужно прикрутить к этому окну события мыши, клавиатуры, фокус и т.д.

Сделал SubClass для окна, созданного из DLL.
В принципе могу вызывать нужные функции из SubClass при получении нужного WM_сообщения, но переживаю за переполнение стека, т.к. выполнение функции может занять длительное время, например, вызов функции с рекурсией...

Может быть делать вызов функций в отдельном потоке или я вообще копаю не в том направлении?

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: События чужого окна?

Сообщение jangle » 11.03.2010 (Чт) 10:46

Lapex писал(а):Привет Всем!

Пожалуйста помогите советом, как правильно поступить.

Использую DLL, которая создает специфическое окно.
Мне нужно прикрутить к этому окну события мыши, клавиатуры, фокус и т.д.

Сделал SubClass для окна, созданного из DLL.
В принципе могу вызывать нужные функции из SubClass при получении нужного WM_сообщения, но переживаю за переполнение стека, т.к. выполнение функции может занять длительное время, например, вызов функции с рекурсией...

Может быть делать вызов функций в отдельном потоке или я вообще копаю не в том направлении?


А что конкретно нужно сделать с чужым окном? Вводить в него какие-то данные? Просто закрыть?

Lapex
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 64
Зарегистрирован: 25.02.2008 (Пн) 14:01

Re: События чужого окна?

Сообщение Lapex » 11.03.2010 (Чт) 13:29

А что конкретно нужно сделать с чужым окном? Вводить в него какие-то данные? Просто закрыть?


DLL создает дочернее окно к указанному родительскому и представляет собой SlideShow c различными эффектами, но в нем нет никаких событий,
например: левый/правый клик мышки, "наезд"/"съезд" курсора мышки на окно и т.д.)

Я делаю плагин (обертка DLL), который должен предоставить пользователю возможность выполнять свой Lua-скрипт в зависимости от произошедшего события.
Выглядит это так, пользователь создает свою функцию, например: OnClick() и передает в плагин указатель на эту функцию,
а плагин должен вызвать эту функцию в зависимости от полученного WM_сообщения.

Т.к. я не знаю, какой скрипт пользователь разместит в своей функции - думаю, существует вероятность переполнения стека.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: События чужого окна?

Сообщение jangle » 11.03.2010 (Чт) 17:56

Lapex писал(а):Т.к. я не знаю, какой скрипт пользователь разместит в своей функции - думаю, существует вероятность переполнения стека.


Вина за бесконечную рекурсию, в этом случае лежит на пользователе который пишет скрипт. ИМХО это не твоя проблема, это проблема пользователя.

Lapex
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 64
Зарегистрирован: 25.02.2008 (Пн) 14:01

Re: События чужого окна?

Сообщение Lapex » 11.03.2010 (Чт) 18:56

Спасибо, т.е. я смело могу вызывать функцию пользователя из селекта WM_сообщений SubClass'a ?!


Вернуться в Power Basic

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

    TopList