Главная страница
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.023 c
4-1094710880
turich
2004-09-09 10:21
2004.10.10
Помогите с диалап соединением


4-1093986950
S@shka
2004-09-01 01:15
2004.10.10
нет работает SetWaitableTimer


4-1094711149
UNIVERSAL
2004-09-09 10:25
2004.10.10
Окно поверх всех окон - проблема(+)


14-1095651043
Мазут Береговой
2004-09-20 07:30
2004.10.10
Вопрос по железу. По старому железу.


1-1095775511
misha123
2004-09-21 18:05
2004.10.10
ООП тип?