Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];

Вниз

как запретить комбобоксу реагировать на колесо мыши   Найти похожие ветки 

 
olden   (2002-12-12 13:00) [0]

и кусочек кода плиз :)


 
Гарик   (2002-12-12 14:10) [1]

Можно через ловушки.
mHook := SetWindowsHookEx(WH_MOUSE, @HookProc, 0, GetCurrentThreadID);
function HookProc(code: Integer; wParam, lParam: DWord): Longint; stdcall;
var wm: TMOUSEHOOKSTRUCT;
begin
if wParam = WM_MOUSEWHEEL then
if (Мыша_над_компонентом и компонент активен) // это напишешь сам
then Result := 1 // сообщение обработано и дальше обрабатываться не будет
else Result := 0 // передаем на обработку приложению
end;

Получить абсолютные координаты мыши можно так:
wm := TMOUSEHOOKSTRUCT(Pointer(lParam)^);
wm.pt : TPoint; - здесь координаты

на OnCreate формы пишешь mHook := SetWindowsHookEx(WH_MOUSE, @HookProc, 0, GetCurrentThreadID);

на OnDestroy - UnhookWindowsHookEx(mHook);


 
olden   (2002-12-12 14:14) [2]

спасибо, попробую


 
Гарик   (2002-12-12 14:32) [3]

точнее:

begin
...SKIP...
if ((GetCaptureControl.handle = _Блокируемый_комбобокс_.Handle)
and (wParam = WM_MOUSEWHEEL)) then Result := 1
else Result := 0


 
Гарик   (2002-12-12 14:42) [4]

конечно не Handle, а Name, (и TControl"а нет хендла :) )


 
Matolch   (2002-12-12 15:08) [5]

А не проще свой комбо сделать?


 
olden   (2002-12-13 13:49) [6]

2 Matolch
>А не проще свой комбо сделать?

Может быть и проще
т.к. тут вот еще в чем загвоздка
у меня на форме есть три элемента: TComboBox, TEdit, TfrPreview (превью-компонент генератора отчетов FastReport)

Так вот если выбрать что-то в комбо а затем щелкнуть на frPreiew, то фокус с комбо не снимается и на прокрутку мышиного колеса реагируют одновременно и комбо и превью.
Если мышой кликнуть на TEdit, то фокус перемещается на оный
и комбо на колесо уже не реагирует.
Пытался програмно перенести фокус на TEdit после выбора пункта в комбо (SetFocus(),SetFocusedControl()). И ничего...
Фокус остается на комбо и опять комбо и превью одновременно реагируют на колесо

Я уже и с PERFORM() повозился, а все равно результата нет.


 
Song   (2002-12-13 14:00) [7]

Нагородили... да просто через TApplication.onMessage



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

Форум: "WinAPI";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
1-86963
- Tsatur -
2003-01-17 01:32
2003.01.27
Фракталы


14-87078
Maksss
2003-01-09 02:46
2003.01.27
здесь самый отвечаемый форум


1-86905
Alex Shulg
2003-01-16 13:21
2003.01.27
Сервис WinNT


6-86998
Serj_z
2002-11-28 20:13
2003.01.27
Проблема в том что 98 ти ХР не видят друг друга без хаба


3-86690
Samsonov Yuric
2003-01-04 11:02
2003.01.27
Помогите разобраться с кодировкой BDE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский