Работа с чужим окном средствами WTL
От: WareZzhKa  
Дата: 08.11.05 13:34
Оценка:
Можно ли реализовать следующую фишку с использованием WTL (вроде сабклассинг к этому относится): подключиться к чужому окну(например приложения Блокнот) и перехватывать его сообещния (выбор пунктов меню, свернули, развернули). Управлять им (сворачивать, разворачивать, передвигать и проч). Хочется также поймать момент, когда юзер закроет подконтрольное окно.
Re: Работа с чужим окном средствами WTL
От: SergH Россия  
Дата: 08.11.05 13:43
Оценка: 1 (1)
Здравствуйте, WareZzhKa, Вы писали:

WZK>Можно ли реализовать следующую фишку с использованием WTL


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

WZK> (вроде сабклассинг к этому относится):


Нет, не относится.

WZK> подключиться к чужому окну(например приложения Блокнот) и перехватывать его сообещния (выбор пунктов меню, свернули, развернули).


См. SetWindowsHookEx

WZK> Управлять им (сворачивать, разворачивать, передвигать и проч).


Просто вызывать MoveWindow, ShowWindow и т.п

WZK>Хочется также поймать момент, когда юзер закроет подконтрольное окно.


Это частный случай перехвата сообщений. WM_DESTROY ловится точно так же, как и все остальные.
Делай что должно, и будь что будет
Re: Работа с чужим окном средствами WTL
От: SaloS http://salos.narod.ru/
Дата: 09.11.05 06:48
Оценка:
Здравствуйте, WareZzhKa, Вы писали:

WZK>Можно ли реализовать следующую фишку с использованием WTL (вроде сабклассинг к этому относится): подключиться к чужому окну(например приложения Блокнот) и перехватывать его сообещния (выбор пунктов меню, свернули, развернули). Управлять им (сворачивать, разворачивать, передвигать и проч). Хочется также поймать момент, когда юзер закроет подконтрольное окно.


Вполне можно субклассировать окно (особенно если оно стандартного класса). Все там сожно будет делать.
Что касается
WZK>поймать момент, когда юзер закроет подконтрольное окно
то нужно определить, что под этим подразумевается. Если то окно, которое субклассируется, то никаких особых проблем не должно возникнуть (ловишь WM_DESTROY), если его дети(или предки), то нужно субклассировать их.
WTL Helper и WTL Wizards помощники для WTL, скачать отсюда http://salos.narod.ru
Re: Работа с чужим окном средствами WTL
От: glyph  
Дата: 10.11.05 08:09
Оценка:
Здравствуйте, WareZzhKa, Вы писали:

WZK>Можно ли реализовать следующую фишку с использованием WTL (вроде сабклассинг к этому относится):

Не совсем относится. Сабклассинг оперирует окном, как основным примитивом построени УИ, а не окном, которое видит пользователь. Т.е. Блокнот — это много разных окон, построенных в цепочку. Кроме того, к моменту сабклассинга класс окна должен быть а)зарегистрирован, б) доступен Вашему приложению.
WZK>подключиться к чужому окну(например приложения Блокнот) и перехватывать его сообещния (выбор пунктов меню, свернули, развернули). Управлять им (сворачивать, разворачивать, передвигать и проч). Хочется также поймать момент, когда юзер закроет подконтрольное окно.
По-моему, легче сделать либо с хуками, либо с инъекцией своего кода в Блокнот.
... << RSDN@Home 1.1.4 beta 3 rev. 193>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.