Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: 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 вся ветка

Текущий архив: 2004.10.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
3-1094800361
KapitanSerg
2004-09-10 11:12
2004.10.10
Записть файлов *.jpg в БД


1-1096088618
Kair()
2004-09-25 09:03
2004.10.10


3-1095245285
Ceval
2004-09-15 14:48
2004.10.10
Подскажите как в вывести цифровое поле ?


14-1095187743
Fusly
2004-09-14 22:49
2004.10.10
SP2 for WinXP


10-1028118297
LeS
2002-07-31 16:24
2004.10.10
Помогите начинающему. Регистрация ком.