Главная страница
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.028 c
3-1095154543
Николай
2004-09-14 13:35
2004.10.10
добавить фиктивную строку в DBGrid


1-1096289020
Dimon_St
2004-09-27 16:43
2004.10.10
Помогите найти библиотеку (Построение B-сплайнов)


9-1086897645
init13
2004-06-11 00:00
2004.10.10
gl_arb_fragment_program


1-1096280330
Andrew2004
2004-09-27 14:18
2004.10.10
UserAgent


3-1094721688
Loaders
2004-09-09 13:21
2004.10.10
DBGrid+DataSet