Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.14;
Скачать: CL | DM;

Вниз

Скролинг мышью   Найти похожие ветки 

 
Kealon ©   (2007-03-13 15:00) [0]

У меня вопрос по известной баге

передача сообщения скролинга мыши активному окну а не окну над которым располагается мыш
для VCL я видел исправление
как сделать подправку с использованием KOL


 
Dimaxx ©   (2007-03-15 13:15) [1]

Ну я не считаю это багом. Сколлинг активного окна - все верно. Вот только если мышь увели за границу активного окна, тогда скроллинг должен выключиться, а не скроллить неактивное окно под курсором или скроллить активное окно.

PS: И вообще, как ты себе это представляешь - например, ты же не можешь открывать дверцы шкафа, закрытого другим. Грубо говоря, шкаф "неактивен" как и окно без фокуса. Открыть дверцу можно, но для этого нужно "активировать" его как и окно.


 
homm ©   (2007-03-15 13:21) [2]

> У меня вопрос по известной баге
>
> передача сообщения скролинга мыши активному окну а не окну
> над которым располагается мыш
> для VCL я видел исправление
> как сделать подправку с использованием KOL

Это вообще-то винда сообщения отсылает только активному окну. Не нравится- ставь дрйвер, который перехватывает и шлет окну под курсором. Мне тоже не нравится, и у меня драйвер такой стоит. Еще от мыши А4Tech остался, работал с Genius счас на Logotech трудится. КОЛ вообще непричем.

> для VCL я видел исправление
Нахрена это исправлять на уровне конкретного приложения, если это ло гика поведения системы?


 
Galkov ©   (2007-03-15 15:27) [3]


> Это вообще-то винда сообщения отсылает только активному
> окну

Мне казалось, что окну, обладающему фокусом ввода

А MSDN пишет такое:

> The WM_MOUSEWHEEL message is sent to the focus window when
> the mouse wheel is rotated. The DefWindowProc function propagates
> the message to the window"s parent. There should be no internal
> forwarding of the message, since DefWindowProc propagates
> it up the parent chain until it finds a window that processes
> it.


И, как мне кажется, KOL не предоставляет возможности НЕ ВЫЗВАТЬ DefWindowProc (другой вопрос - почему?), поэтому до самого верхнего парента должно дойти.
Там и ставишь ловушку, в которой отправляешь уже свое сообщение окну под мышой, к примеру...
ИМХО


 
homm ©   (2007-03-15 15:37) [4]

> > Это вообще-то винда сообщения отсылает только активному окну
> Мне казалось, что окну, обладающему фокусом ввода

Может быть. В любом случае окно обладающее фокусом ввода будет активнм. Или есть исключения?


 
kealon ©   (2007-03-16 06:50) [5]

я конечно понимаю что это логика работы системы
но вот у меня окно(в понятии Windows) которое никогда не получает фокуса
и скролить его мышью не получается, а надо

я сделал компонент, скролинг он обрабатывает сам
я так понимаю из этого

> The WM_MOUSEWHEEL message is sent to the focus window when
> the mouse wheel is rotated. The DefWindowProc function propagates
> the message to the window"s parent. There should be no internal
> forwarding of the message, since DefWindowProc propagates
> it up the parent chain until it finds a window that processes
> it.

следует что главному окну сообщение не дойдёт


 
kealon ©   (2007-03-16 06:52) [6]

там два "окна", одно всегда должно быть под фокусом(один из его )
но скролить нужно оба
вот сайт проекта что бы было понятно
mudclient.narod.ru


 
homm ©   (2007-03-16 07:12) [7]

> вот сайт проекта что бы было понятно
> mudclient.narod.ru

Ужас, а не гамма.
Дава объясняй почему там 2 окна? Я так понял нижнее должно скрлоится вместа с средним? Зачем тогда их разделять?

А вобще-то
procedure TForm1.Edit2MouseWheel(Sender: PControl;
 var Mouse: TMouseEventData);
begin
  SendMessagr(Edit3.Handle, WM_MouseWheel, ....);
end;


 
kealon ©   (2007-03-16 12:48) [8]

1. Оба окна служат для вывода текста
2. Текст в обоих друг от друга не зависит
3. Рабочее окно всегда нижнее и курсор всегда должен стоять на строке ввода
4. В нижнем окне текст пролистывается очень быстро(для заметки особенностей и служит верхнее окно, вот его тоже необходимо скролить)

на данный момент скролинг перехватывается EditBox-e
хотя самое идеальное должен перехватываться в панели просмотра
нижнее окно унаследовано от верхнего и в него как раз и добавлена строка ввода


 
Савиатар   (2007-03-16 12:53) [9]


> Ужас, а не гамма.


Не шаришь, чувак :)



Страницы: 1 вся ветка

Текущий архив: 2007.10.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
1-1186040878
pasha_golub
2007-08-02 11:47
2007.10.14
Конфигурация проекта сбрасывается


15-1190017546
GeLLeR
2007-09-17 12:25
2007.10.14
Гитара


15-1190112142
NOWICHOK
2007-09-18 14:42
2007.10.14
задачи на С++


3-1181305142
Alvin
2007-06-08 16:19
2007.10.14
Приложение на Delphi под wine


2-1190211725
azl
2007-09-19 18:22
2007.10.14
Как программно добавить новый пункт меню в PopupMenu?