Как получить от листера WM_EXITSIZEMOVE?
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Как получить от листера WM_EXITSIZEMOVE?
Или любой другой способ вытащить итоговые координаты, полученные по окончании ресайза окошка листера.
Re: Как получить от листера WM_EXITSIZEMOVE ?
Попробуйте так: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;Получил, спасибо.
Насколько я понимаю, Delphi позволяет не поморщившись объявить одну оконную процедуру внутри другой. VC такого не допускает. После длительного гугления я нашёл максимум пример того, как после танцев с бубнами можно загнать WNDPROC внутрь класса. Но как этот пример следует привести к моему случаю (WNDPROC внутри WNDPROC) я не понял
Мне такое не по зубам.
Насколько я понимаю, Delphi позволяет не поморщившись объявить одну оконную процедуру внутри другой. VC такого не допускает. После длительного гугления я нашёл максимум пример того, как после танцев с бубнами можно загнать WNDPROC внутрь класса. Но как этот пример следует привести к моему случаю (WNDPROC внутри WNDPROC) я не понял