Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как из своего класса обрабатывать сообщения некого окна? [D5, Win2k, WinXP]


Страницы:   1 2 3 4

Zilog ©   (2004-12-16 14:58:00) 

Как из своего класса обрабатывать сообщения некого окна?

есть у меня класс, возникла нужда обработать некоторые сообщения адресованные форме. В классе известен только handle этого окна.

Каким образом это можно сделать?


Суслик   (2004-12-16 16:23:00) [61]


>  [12] Zilog ©   (16.12.04 16:21)

наоборот делай...
ну в общем я написал уже выше


Zilog   (2004-12-16 16:21:00) [62]

>>Reindeer Moss Eater ©

ну к примеру после обработки сообщений родной оконной процедурой, сообщения (необработанные) передавались мне :)
Или такое невозможно?


Digitman   (2004-12-16 16:21:00) [63]


> Получается SetWindowLong полностью переопределяет оконные
> функции?


да.
с условиями, оговоренными в MSDN


Reindeer Moss Eater   (2004-12-16 16:20:00) [64]

Интересно, а как можно переопределить "неполностью"


Суслик   (2004-12-16 16:20:00) [65]


> Получается SetWindowLong полностью переопределяет оконные
> функции?

1 получи старое значене оконной функции
2 определи новую функцию. В случае если есть потребность вызова старой фнукции вызываешь.


Zilog   (2004-12-16 16:18:00) [66]

>>Digitman ©   (16.12.04 16:00) [3]
>>см. SetWindowLong() с параметром GWL_WNDPROC

GWL_WNDPROC - Sets a new address for the window procedure.

Получается SetWindowLong полностью переопределяет оконные функции?


Digitman   (2004-12-16 16:18:00) [67]

SetWindowLong() - самое простое и очевидное решение.


Zilog   (2004-12-16 16:08:00) [68]

>>ЧТО ТЕБЕ НАДОБНО, СТАРЧЕ ...

делаю компонент, который влияет на визуализацию окна.
Нужно обрабатывать сообщения, которые возникают к примеру при перемещении окна...


Zilog   (2004-12-16 16:05:00) [69]

>>ЧТО ТЕБЕ НАДОБНО, СТАРЧЕ ...

делаю компонент, который влияет на визуализацию окна.
Нужно обрабатывать сообщения, которые возникают к примеру при перемещении окна...


Суслик   (2004-12-16 16:00:00) [70]


> А нет ли возможности переопределить обработку сообщений
> на себя?

переопределить оконную функцию.


Digitman   (2004-12-16 16:00:00) [71]

Удалено модератором


Zilog   (2004-12-16 15:53:00) [72]

я так понимаю PeekMessage надо вызывать постоянно, на предмет проверки новых сообщений... мне это не совсем подходит.
Да и PM_REMOVE видимо следует, к тому же поменять на PM_NOREMOVE, чтобы не лишить окошко обрабатывать положенные ей месседжи.

А нет ли возможности переопределить обработку сообщений на себя? Чтобы процедура обработки вызывалась по мере появления новых сообщений.


Digitman   (2004-12-16 15:04:00) [73]

while PeekMessage(msg, somehandle, 0, 0, PM_REMOVE) do
 begin
   TranslateMessage(Msg);
   DispatchMessage(Msg);
 end;


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо