Страница 1 из 1
Как получить от листера WM_EXITSIZEMOVE?
Добавлено: Чт фев 26, 2009 14:08
Worros
Или любой другой способ вытащить итоговые координаты, полученные по окончании ресайза окошка листера.
Re: Как получить от листера WM_EXITSIZEMOVE ?
Добавлено: Чт фев 26, 2009 17:57
Dec
Worros писал(а):Или любой другой способ вытащить итоговые координаты, полученные по окончании ресайза окошка листера.
Попробуйте так:
Код: Выделить всё
...
FOldWndProc := SetWindowLong(ListerWindow, GWL_WNDPROC, integer(@NewWindowProc));
...
function NewWindowProc(AWindow: HWND; AMsg: UINT; AWParam: WPARAM; ALParam: LPARAM): LRESULT; stdcall;
var R: TRect;
begin
FOldWndProc(AWindow, AMsg, AWParam, ALParam);
if AMsg = WM_EXITSIZEMOVE then
begin
GetWindowRect(AWindow, R);
end;
end;
Добавлено: Чт фев 26, 2009 20:16
Worros
Работает, спасибо!
Не знал, что сабклассинг можно так каскадировать.
Добавлено: Чт фев 26, 2009 23:01
Worros
Есть проблемы с несколькими экземплярами плагина.
Как выкручиваться?
Добавлено: Пт фев 27, 2009 09:19
Dec
Worros писал(а):Есть проблемы с несколькими экземплярами плагина.
Как выкручиваться?
Какие проблемы
Добавлено: Пт фев 27, 2009 11:22
Worros
У меня NewWindowProc глобальной получилась

со всеми вытекающими последствиями: исключения так и сыплются, и визуальные артефакты при переключении между окнами листера с плагином.
Добавлено: Пт фев 27, 2009 12:38
Dec
Среда программирования?
Добавлено: Пт фев 27, 2009 14:00
Worros
VS2003
Добавлено: Пт фев 27, 2009 15:13
Dec
Если скину свой исходник на Delphi, то сможете разобраться?
Добавлено: Пт фев 27, 2009 15:21
Worros
Попробую

Спасибо заранее. Мыло сброшу в личку.
Добавлено: Пт фев 27, 2009 19:59
Worros
Получил, спасибо.
Насколько я понимаю, Delphi позволяет не поморщившись объявить одну оконную процедуру внутри другой. VC такого не допускает. После длительного гугления я нашёл максимум пример того, как после танцев с бубнами можно загнать WNDPROC внутрь класса. Но как этот пример следует привести к моему случаю (WNDPROC внутри WNDPROC) я не понял

Мне такое не по зубам.
Добавлено: Вс мар 01, 2009 22:15
VadiMGP
Worros писал(а):объявить одну оконную процедуру внутри другой.
A зачем это нужно?
Добавлено: Вс мар 01, 2009 23:55
Worros
VadiMGP писал(а):Worros писал(а):объявить одну оконную процедуру внутри другой.
A зачем это нужно?
Да, я поторопился с выводами. Не нужно это. Мне Dec уже объяснил мою ошибку.