Форум: "WinAPI";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];
ВнизПриход / уход мыши Найти похожие ветки
← →
Mischka (2003-05-14 07:36) [0]Пытаюсь в главной оконной функции отловить событие 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;
← →
MBo (2003-05-14 07:41) [1]WM_MOUSEHOVER
что это???????????????????
← →
Mischka (2003-05-14 07:52) [2]Да хрен его знает. Майкрософт пишет, что такое сообщение должно передаваться окну при приходе мыши.
← →
MBo (2003-05-14 08:22) [3]просто так они не возникают - для WM_MOUSELEAVE надо TrackMouseEvent делать с TME_LEAVE.
Попробуй то же и с MOUSEHOVER.
IMHO, проще MouseMove отслеживать.
← →
Mischka (2003-05-14 08:32) [4]TrackMouseEvent я делаю, ни хрена не помогает
← →
NAlexey (2003-05-14 11:37) [5]Ну а просто MouseEnter/MouseLeave?
← →
Mischka (2003-05-14 12:29) [6]И куда их пихать? Я че-то не догоняю...
← →
NAlexey (2003-05-14 12:59) [7]>И куда их пихать? Я че-то не догоняю...
Э-э-э... М-м-м. Кого прости "пихать"?
Обрабатывай сообщения 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 14:31) [8]Да нету у меня никаких контролов. Есть только окно созданное API-функциями - HWND
← →
Игорь Шевченко (2003-05-14 15:19) [9]Посмотри исходники forms.pas TApplication.DoIdle
или внимательно почитай про TrackMouseEvent
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c