Можно ли реализовать следующую фишку с использованием WTL (вроде сабклассинг к этому относится): подключиться к чужому окну(например приложения Блокнот) и перехватывать его сообещния (выбор пунктов меню, свернули, развернули). Управлять им (сворачивать, разворачивать, передвигать и проч). Хочется также поймать момент, когда юзер закроет подконтрольное окно.
Здравствуйте, WareZzhKa, Вы писали:
WZK>Можно ли реализовать следующую фишку с использованием WTL
Можно. Правда, где тут использовать WTL пока не придумал...
WZK> (вроде сабклассинг к этому относится):
Нет, не относится.
WZK> подключиться к чужому окну(например приложения Блокнот) и перехватывать его сообещния (выбор пунктов меню, свернули, развернули).
См. SetWindowsHookEx
WZK> Управлять им (сворачивать, разворачивать, передвигать и проч).
Просто вызывать MoveWindow, ShowWindow и т.п
WZK>Хочется также поймать момент, когда юзер закроет подконтрольное окно.
Это частный случай перехвата сообщений. WM_DESTROY ловится точно так же, как и все остальные.
Здравствуйте, WareZzhKa, Вы писали:
WZK>Можно ли реализовать следующую фишку с использованием WTL (вроде сабклассинг к этому относится): подключиться к чужому окну(например приложения Блокнот) и перехватывать его сообещния (выбор пунктов меню, свернули, развернули). Управлять им (сворачивать, разворачивать, передвигать и проч). Хочется также поймать момент, когда юзер закроет подконтрольное окно.
Вполне можно субклассировать окно (особенно если оно стандартного класса). Все там сожно будет делать.
Что касается WZK>поймать момент, когда юзер закроет подконтрольное окно
то нужно определить, что под этим подразумевается. Если то окно, которое субклассируется, то никаких особых проблем не должно возникнуть (ловишь WM_DESTROY), если его дети(или предки), то нужно субклассировать их.
Здравствуйте, WareZzhKa, Вы писали:
WZK>Можно ли реализовать следующую фишку с использованием WTL (вроде сабклассинг к этому относится):
Не совсем относится. Сабклассинг оперирует окном, как основным примитивом построени УИ, а не окном, которое видит пользователь. Т.е. Блокнот — это много разных окон, построенных в цепочку. Кроме того, к моменту сабклассинга класс окна должен быть а)зарегистрирован, б) доступен Вашему приложению. WZK>подключиться к чужому окну(например приложения Блокнот) и перехватывать его сообещния (выбор пунктов меню, свернули, развернули). Управлять им (сворачивать, разворачивать, передвигать и проч). Хочется также поймать момент, когда юзер закроет подконтрольное окно.
По-моему, легче сделать либо с хуками, либо с инъекцией своего кода в Блокнот.