Есть контрол, содержащий простейший HTML с текстом и таблицей, по кнопке Print печатается все содержимое.
Нужно добавить возможность выделения текста и печать только выделенного.
Добавил вызов HTMLayoutSetMode(hWndHTMLayout, HLM_SHOW_SELECTION) — текст стал выделяться, но есть проблема:
если переместить фокус на другой контрол, выделение сбрасывается. Не просто не показывается, а именно сбрасывается — HTMLayoutSelectionExist возвращает FALSE.
Как это поправить?
Я смотрел примеры с htmlarea — там выделение пропадает. Возможно, не сбрасывается, но визуально его не видно. Хотелось бы, чтобы оно оставалось, как в plaintext, но plaintext не годится из-за таблицы.
richedit? Но мне не нужно редактирование...
Хотелось мы максимально простой способ типа HTMLayoutSetMode/HTMLayoutSelectionExist/HTMLayoutGetSelectedHTML.
Здравствуйте, c-smile, Вы писали:
CS>Но это только в Sciter, в HTMLayout это работать не будет.
Жаль. Надо именно в HTMLayout.
Но я вроде нашел воркэраунд: в обработчике handle_focus просто вернуть TRUE. Как я понимаю, в этом cлучае HTMLayout как бы не замечает, что фокус переместился, поэтому не снимает выделение.
Единственное, хотелось бы, чтобы при потере фокуса цвет выделения менялся, чтобы было видно, что вью неактивно. Но пока и так годится.
Здравствуйте, rstain, Вы писали:
R>Но я вроде нашел воркэраунд: в обработчике handle_focus просто вернуть TRUE. R>Единственное, хотелось бы, чтобы при потере фокуса цвет выделения менялся, чтобы было видно, что вью неактивно. Но пока и так годится.
В этом же обработчике задать другой цвет выделения через CSS самому при потере и получении фокуса.