Сброс выделения при потере фокуса
От: Аноним  
Дата: 10.11.15 14:07
Оценка:
Здравствуйте.

Есть контрол, содержащий простейший HTML с текстом и таблицей, по кнопке Print печатается все содержимое.
Нужно добавить возможность выделения текста и печать только выделенного.

Добавил вызов HTMLayoutSetMode(hWndHTMLayout, HLM_SHOW_SELECTION) — текст стал выделяться, но есть проблема:
если переместить фокус на другой контрол, выделение сбрасывается. Не просто не показывается, а именно сбрасывается — HTMLayoutSelectionExist возвращает FALSE.
Как это поправить?

Я смотрел примеры с htmlarea — там выделение пропадает. Возможно, не сбрасывается, но визуально его не видно. Хотелось бы, чтобы оно оставалось, как в plaintext, но plaintext не годится из-за таблицы.
richedit? Но мне не нужно редактирование...
Хотелось мы максимально простой способ типа HTMLayoutSetMode/HTMLayoutSelectionExist/HTMLayoutGetSelectedHTML.
Re: Сброс выделения при потере фокуса
От: c-smile Канада http://terrainformatica.com
Дата: 12.11.15 03:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Хотелось мы максимально простой способ типа HTMLayoutSetMode/HTMLayoutSelectionExist/HTMLayoutGetSelectedHTML.


Вот пример:

<html>
  <head>
    <style>
      body {
        behavior:htmlarea; /* selection */
        text-selection: #000 #ccc; /* selection colors */
      }
      
      body:focus {
        text-selection: highlighttext highlight;
      }
    
    </style>
  </head>
<body>
<p>Hello <b>world</b></p>
<table border>
  <tr><td>Hello</td><td>universe</td></tr>
</table>
    <p>world</p>
    <ul>
      <li>one</li>
      <li>two</li>
    </ul>  
</body>
</html>


Но это только в Sciter, в HTMLayout это работать не будет.
Re[2]: Сброс выделения при потере фокуса
От: rstain  
Дата: 12.11.15 10:04
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Но это только в Sciter, в HTMLayout это работать не будет.


Жаль. Надо именно в HTMLayout.
Но я вроде нашел воркэраунд: в обработчике handle_focus просто вернуть TRUE. Как я понимаю, в этом cлучае HTMLayout как бы не замечает, что фокус переместился, поэтому не снимает выделение.
Единственное, хотелось бы, чтобы при потере фокуса цвет выделения менялся, чтобы было видно, что вью неактивно. Но пока и так годится.
Re[3]: Сброс выделения при потере фокуса
От: flаt  
Дата: 12.11.15 11:37
Оценка:
Здравствуйте, rstain, Вы писали:

R>Но я вроде нашел воркэраунд: в обработчике handle_focus просто вернуть TRUE.

R>Единственное, хотелось бы, чтобы при потере фокуса цвет выделения менялся, чтобы было видно, что вью неактивно. Но пока и так годится.
В этом же обработчике задать другой цвет выделения через CSS самому при потере и получении фокуса.
Re[4]: Сброс выделения при потере фокуса
От: c-smile Канада http://terrainformatica.com
Дата: 13.11.15 01:35
Оценка:
Здравствуйте, flаt, Вы писали:

F>В этом же обработчике задать другой цвет выделения через CSS самому при потере и получении фокуса.


HTMLayout не поддерживает text-selection property.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.