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

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

Приход / уход мыши [D7, WinXP]


Mischka ©   (2003-05-14 07:36:00) 

Пытаюсь в главной оконной функции отловить событие WM_MOUSEHOVER и WM_MOUSELEAVE. Ничего не происходит, как будто мое окно не получает таких сообщений вообще.
Вот код:
function WindowProc(Window: HWND; Message, wParam: Word; lParam: longint): longint; stdcall;
begin
Result:=0;
case Message of
WM_MOUSEHOVER: beep(440, 40);
...
end;
end;


Игорь Шевченко   (2003-05-14 15:19:00) [1]

Посмотри исходники forms.pas TApplication.DoIdle

или внимательно почитай про TrackMouseEvent


Mischka   (2003-05-14 14:31:00) [2]

Да нету у меня никаких контролов. Есть только окно созданное API-функциями - HWND


NAlexey   (2003-05-14 12:59:00) [3]

>И куда их пихать? Я че-то не догоняю...
Э-э-э... М-м-м. Кого прости "пихать"?
Обрабатывай сообщения CM_MOUSELEAVE и CM_MOUSEENTER.

procedure CMMouseLeave(var Message: TMessage);
begin
if Message.LParam = Integer(YourControl) then
begin
(...)
end;
inherited;
end;

Ну и Enter также.


Mischka   (2003-05-14 12:29:00) [4]

И куда их пихать? Я че-то не догоняю...


NAlexey   (2003-05-14 11:37:00) [5]

Ну а просто MouseEnter/MouseLeave?


Mischka   (2003-05-14 08:32:00) [6]

TrackMouseEvent я делаю, ни хрена не помогает


MBo   (2003-05-14 08:22:00) [7]

просто так они не возникают - для WM_MOUSELEAVE надо TrackMouseEvent делать с TME_LEAVE.
Попробуй то же и с MOUSEHOVER.
IMHO, проще MouseMove отслеживать.


Mischka   (2003-05-14 07:52:00) [8]

Да хрен его знает. Майкрософт пишет, что такое сообщение должно передаваться окну при приходе мыши.


MBo   (2003-05-14 07:41:00) [9]

WM_MOUSEHOVER
что это???????????????????


Наверх

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