Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как отследить уничтожение Handle у TWinControl


Автор: RomanEEP 8.8.2007, 08:15
override DestroyWindowHandle не помогает. Возможно это связано, что Control - MDIChild окно. Как отследить уничтожение его Handle?

Автор: DBZ 8.8.2007, 08:33
Например так:

WinControl1.Tag:=SetWindowLong(WinControl1.Handle, GWL_WNDPROC, longInt(@NewWP));

...

function NewWP(hWnd: HWND; Msg: LongInt; wParam, lParam: Longint): longInt; stdcall;
begin
  if Msg = WM_DESTROY then begin
    // Окно удаляется!!! Реагируем...
  end;
  Result:=CallWindowProc(Pointer(WinControl1.Tag), hWnd, Msg, wParam, lParam);
end;

Автор: RomanEEP 8.8.2007, 09:23
Спасибо smile 
Все же интересно понять, почему не срабатывает DestroyWindowHandle и, кстати, WMDestroy(...); override; тоже

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)