Я почитал тут, посмотрел примеры.
Мне непонятным оказался механизм "отлова" события CLICK от кнопки.
Я видел как это реализовано в mfc примере(Wizard) для behavior:command
есть ли аналогичный способ для behavior:button (HLN_COMMAND_CLICK)?
Или единственный способ слушать ВСЕ сообщения и фильтровать только определенный тип событий от определенного компонента?
Мне кажется неудобным иметь одну громадную функцию обработки всех событий.
Или я ошибаюсь (недопонимаю весь механизм)?
Здравствуйте, PSasa, Вы писали:
PS>Или единственный способ слушать ВСЕ сообщения и фильтровать только определенный тип событий от определенного компонента? PS>Мне кажется неудобным иметь одну громадную функцию обработки всех событий.
Так ничего громадного в ней нет Или ты про что-то другое?
Наверное все-таки это не то.
Здесь ты создаешь новое поведение унаследованное от button
я же хочу отловить BUTTON_CLICK в своей программе, а лучше назначить функцию одработки BUTTON_CLICK элемента с ID
Здравствуйте, PSasa, Вы писали:
PS>Наверное все-таки это не то. PS>Здесь ты создаешь новое поведение унаследованное от button
От htmlayout::behavior. PS>я же хочу отловить BUTTON_CLICK в своей программе,
Во. Именно это это behavior my-button делать и будет. PS>а лучше назначить функцию одработки BUTTON_CLICK элемента с ID
Решается с помощью стилей. behavior button будет генерировать событие BUTTON_CLICK, а behavior my-button обрабатывать его.
Здравствуйте, PSasa, Вы писали:
PS>Наверное все-таки это не то. PS>Здесь ты создаешь новое поведение унаследованное от button PS>я же хочу отловить BUTTON_CLICK в своей программе, а лучше назначить функцию одработки BUTTON_CLICK элемента с ID
Если вам нужно MFC-ориентированная обертка, могу поделится своими наработками.
У меня сделано многое через CSSS. Выглядит примерно так:
Событие BUTTON_CLICK сгенерированное кнопкой "всплывает" т.е. доставляется
самой кнопке и всем её контейнерам (включая view — окно).
Т.е. ловить "кнопкин клик" можно на ней самой или на любом из ея контейнеров путем
создания своего htmlayout::event_handler и прикрепления оного htmlayout::attach_event_handler()
на требуемый объект.
Здравствуйте, c-smile, Вы писали:
CS>Можно также вариант от Nikolaz взять и использовать CSSS! в качестве дискриминаторов-синтезаторов событий.
Для меня удобствие при использовании CSSS! состоит в том, что помимо самого факта клика, я могу наверх еще что-то в параметрах самой custom-функции передать. Очень удобно.
Здравствуйте, Nikolaz, Вы писали:
N>Здравствуйте, c-smile, Вы писали:
CS>>Можно также вариант от Nikolaz взять и использовать CSSS! в качестве дискриминаторов-синтезаторов событий. N>Для меня удобствие при использовании CSSS! состоит в том, что помимо самого факта клика, я могу наверх еще что-то в параметрах самой custom-функции передать. Очень удобно.
Это да.
Кстати я вот також думал вывести наружу этот самый CSSS! evaluator.
Типа HTMLayoutElementEvaluate(HELEMENT he, LPCWSTR cssScript);
тогда cssScript можно использовать в атрибутах (написав соотв. метод во view event handler)