добавляю в таблицу (точней в тег TD сразу после input элементов) кнопки через setElementHtml. после добавления делается
HTMLayoutUpdateElementEx(hRoot,REDRAW_NOW|RESET_STYLE_DEEP|MEASURE_DEEP);
все TD с полями ввода имеют flow=horizontal; border=1px
Однако все равно возникают ситуации как на этом рисунке:
у таблицы width=100%, т.е. ожидается что она раздвинется (свободное место там есть ), приняв в себя кнопки
при этом кнопка, выходящая за край *не* нажимается, при наводе курсора мышки даже хайлайта не возникает. что особенно неприятно.
кнопки, попавшие после добавления внутрь нажимаются нормально
===================
плюс еще один вопрос (повторюсь).... добавил свертывание отдельных блоков по behavior:collapsible-by-icon;
если открывать HTML через browser.exe то все ок, блоки скрываются/показываются.
если из моего приложения — все рисуется так же как и в browser.exe, но клик по иконке +/- do nothing.
Что нужно добавить в программу чтобы скрытие отрабатывало нормально?
===================
2C-smile: прошу прощения за обилие сообщений если бы можно как нибудь компенсировать затраты на поддержку HTMLLayout (ведь, как принято, бесплатное — без поддержка) был бы рад ответно помочь чем смогу. еще один респект за постоянную активность на этом форуме она даже выше чем на родном форуме htmlLayoutа
Здравствуйте, IPv6, Вы писали:
IP>плюс еще один вопрос (повторюсь).... добавил свертывание отдельных блоков по behavior:collapsible-by-icon; если открывать HTML через browser.exe то все ок, блоки скрываются/показываются. IP>если из моего приложения — все рисуется так же как и в browser.exe, но клик по иконке +/- do nothing. IP>Что нужно добавить в программу чтобы скрытие отрабатывало нормально? IP>===================
Я бы наивно предположил, что нужно добавить вышеназванный бихевиор (т.е. ...\HTMLayoutSDK\include\behaviors\behavior_collapsible_by_icon.cpp). Убедитесь, что collapsible_by_icon::collapsible_by_icon() (конструктор) отрабатывает при старте приложения. Если это так, проверьте, не поглощает ли у вас кто-нибудь on_mouse выше или ниже по иерархии.
Здравствуйте, a-lex, Вы писали:
AL>Здравствуйте, IPv6, Вы писали:
IP>>плюс еще один вопрос (повторюсь).... добавил свертывание отдельных блоков по behavior:collapsible-by-icon; если открывать HTML через browser.exe то все ок, блоки скрываются/показываются. IP>>если из моего приложения — все рисуется так же как и в browser.exe, но клик по иконке +/- do nothing. IP>>Что нужно добавить в программу чтобы скрытие отрабатывало нормально? IP>>===================
AL>Я бы наивно предположил, что нужно добавить вышеназванный бихевиор (т.е. ...\HTMLayoutSDK\include\behaviors\behavior_collapsible_by_icon.cpp). Убедитесь, что collapsible_by_icon::collapsible_by_icon() (конструктор) отрабатывает при старте приложения. Если это так, проверьте, не поглощает ли у вас кто-нибудь on_mouse выше или ниже по иерархии.
спасибо за ответ. Видимо тут еще копаться и копаться...
— Добавил бихейвиор behavior_collapsible_by_icon.cpp. не работает но все ок, не падает
— добавил htmlayout::event_handler::element_proc(tag, he, evtg, prms); при HANDLE_INITIALIZATION (чтобы бихейвиор подцепился) и диалог начал рушится при старте сразу после ON_INITDIALOG, при этом стек путой, видмо что-то где-то трет!
Блин, знал бы делал на WTL приложение, нет вот опять MFC решился присобачить... за что и поплатился
Может кто знает в чем дело? Хоть руками скрытие эмулируй...
Здравствуйте, IPv6, Вы писали:
IP>спасибо за ответ. Видимо тут еще копаться и копаться... IP>- Добавил бихейвиор behavior_collapsible_by_icon.cpp. не работает но все ок, не падает IP>- добавил htmlayout::event_handler::element_proc(tag, he, evtg, prms); при HANDLE_INITIALIZATION (чтобы бихейвиор подцепился) и диалог начал рушится при старте сразу после ON_INITDIALOG, при этом стек путой, видмо что-то где-то трет!
IP>Блин, знал бы делал на WTL приложение, нет вот опять MFC решился присобачить... за что и поплатился IP>Может кто знает в чем дело? Хоть руками скрытие эмулируй...
Я не понял чего ты соорудил в результате.
Сделай следуюущее:
class CYourDialog: public ...,
public notification_handler <CYourDialog> // mix notification_handler in
+ добавь в проект behavior_collapsible_by_icon.cpp.
По идее больше ничего делать не надо.
Или точно воcпроизведи обработку HLN_ATTACH_BEHAVIOR из htmlayout_notifications.hpp у себя ибо это несложно:
Здравствуйте, c-smile, Вы писали:
CS>Или точно воcпроизведи обработку HLN_ATTACH_BEHAVIOR из htmlayout_notifications.hpp у себя ибо это несложно:
Спасибо!!! пустив все через свой коллбек все заработало без костыликов. По поводу того что падало — в обработчике HANDLE_INITIALIZATION (приаттаченном через HTMLayoutWindowAttachEventHandler) пытался вызвать вот что
А что с недопересчетом размеров таблицы после добавления в TDшки элементов? Выглядит как баг
хотя его обойти несложно путем ручного задания размеров, но все же...