Здравствуйте, PM, Вы писали:
PM>Можно ли это привести к какому-то одинаковому поведению?
mouse wheel policy вообще-то унифицирована:
0. все mouse wheel события поступают главному htmlayout/sciter окну если оно само активное (имеет фокус внутри)
1. mouse wheel | sinking ловится и обрабатывается scrollable container'ом. Если такого нет то
2. необработанный mouse wheel поступает тому элементу над которым мышь находится.
PM>Меня бы устроило и отсутствие реакции в элементах управления на колесико мыши. Для этого я пытался поставить обработчик на события мыши для всего документа и перехватывать их примерно таким способом:
PM>Но так естественно перестает работать прокрутка содержимого документа, что хотелось бы оставить.
В принципе правильно, MOUSE_WHEEL задавили, но тогда надо (пере-)послать это событие нужному элементу:
virtual bool my_event_handler::handle_mouse(HELEMENT he, MOUSE_PARAMS& params )
{
if ( event_type == MOUSE_WHEEL | SINKING )
{
BOOL handled;
params.cmd = MOUSE_WHEEL;
params.target = he;
HTMLayoutTraverseUIEvent(HANDLE_MOUSE,¶ms,handled);
return true;
}
return false;
}
(Предполагается что my_event_handler стоит на html или body или что там у тебя scrollable)