Вниз
Скачать: CL | DM;

Перехват сообщений о создании окошек   Найти похожие ветки 

← →
dy ©   (2004-09-10 16:25) [0]

HI, all.
Трабля такая - надо в родительском окне (в конкретном случае MDI parent) отлавливать событие создания (показа) дочернего окна и закрытия его.
Долго бьюсь над проблемой, но че-та не складывается...

Зарание спасиба.


← →
Игорь Шевченко ©   (2004-09-10 16:31) [1]

Замена оконной процедуры у ClientHandle, куда и приходят сообщения о создании/уничтожении дочерних окон.
Пример:

procedure TfMain.FormCreate(Sender: TObject);
begin
 FClientInstance := MakeObjectInstance(ClientWndProc);
 FPrevClientProc := Pointer(GetWindowLong(ClientHandle,
                             GWL_WNDPROC));
 SetWindowLong(ClientHandle,
               GWL_WNDPROC, LongInt(FClientInstance));
end;

procedure TfMain.ClientWndProc(var Message: TMessage);
begin
 with Message do
   case Msg of
   WM_MDICREATE:
     begin
       Result := CallWindowProc(FPrevClientProc,
                              ClientHandle,
                              Msg,
                              wParam,
                              lParam);
       AddButtonToPanel (Result);
     end;
   WM_MDIDESTROY:
     begin
       RemoveButtonFromPanel(wParam);
       Result := CallWindowProc(FPrevClientProc,
                              ClientHandle,
                              Msg,
                              wParam,
                              lParam);
     end;
   else
     Result := CallWindowProc(FPrevClientProc,
                              ClientHandle,
                              Msg,
                              wParam,
                              lParam);
   end;
end;



← →
dy ©   (2004-09-10 17:42) [2]

Ок, пасиба.
Кстати, почему та же тема не работает с процедурами обработки сообщений?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
4-1094794580
needle
2004-09-10 09:36
2004.10.10
Как узнать принадлежит-ли компьютер к какому-либо домену?


6-1090316461
highlander
2004-07-20 13:41
2004.10.10
Отправка СМС-сообщений, используя HTTP


9-1083337186
OSokin
2004-04-30 18:59
2004.10.10
Цветные линии


14-1095919272
gn
2004-09-23 10:01
2004.10.10
Читайте назночение программ некоторые фразы меня впечатлили :-)


8-1090167181
Wistful
2004-07-18 20:13
2004.10.10
WaveOutWrite???




   Наверх