Вопрос № 28712: Здравствуйте!
Я опять по поводу субклассирования.
Определяю стандартную оконую функцию в модуле. Как теперь сделать так, чтобы эта функия вызвала другую, именно из той копии класса, которая субклассирует даное окно?
Напремер:
У меня ...
Вопрос № 28.712
Здравствуйте!
Я опять по поводу субклассирования.
Определяю стандартную оконую функцию в модуле. Как теперь сделать так, чтобы эта функия вызвала другую, именно из той копии класса, которая субклассирует даное окно?
Напремер:
У меня есть три контрола:
ContrA субклассирует окно 1
ContrB --////--- 2
ContrC --////--- 3
и NewWindowFunction (в стандартном модуле) если она будет вызвана как можно узнать какая именно копия котнрола ёё вызвала? И вызвать функцию именно того контрла, которая ёё вызвала?
Может ёще существует какой-нибудь другой алгоритм? А то я понатия не имею как можно его организовать.
А как еще можно субклассировать окно пренадлежащее другому процессу?
SetWindowLong конечно возвращае ошибку. Для этой цели пользовался специальным контролом, но хотелось бы «избавиться» от необходимости его присутствия для даных целей.
Отправлен: 01.11.2005, 20:37
Вопрос задал: Igor Vlad. (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Puma
Здравствуйте, Igor Vlad.!
Узнать какое окно вызвало функцию субклассирования можно через параметр hWnd передаваемый в функцию. Этот параметр являестя обязательным. Проверяя его через case можно вызвать нужную функцию контрола.
В приклепленном файле высылаю рабочий модуль для создания и работы с системыным меню, но немного модифицировав его можно использовать и для ловли сообщений от контролов.
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа. --------- Куда б я ни пошел, оно со мною: на форумах, в e-mail иль в ICQ. Мое ИМХО могучею скалою поддержит точку зрения мою.
Ответ отправил: Puma (статус: Практикант)
Отправлен: 02.11.2005, 18:00
Отвечает: Залетин Виталий Викторович
Здравствуйте, Igor Vlad.!
Можно завести массив, в котором перед запуском сабклассинга поместить все hWnd контрола и во впемя сабкласса проверять параметр hWnd функции окна.
А чужое окно сабклассить... Может, хуками можно?
--------- Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (статус: 6-ой класс)
Отправлен: 05.11.2005, 15:18 Оценка за ответ: 5 Комментарий оценки: Идея неплохая. Я уже встретил подобный пример.