Orion9

|
Posted: Fri Jun 27, 2025 12:02 Post subject: |
|
|
Loopback wrote: | Для расчёта в функции DrawText есть замечательный флаг DT_CALCRECT. Перед расчётом нужно для DC с SelectObject выбрать шрифт, который будет использоваться для отрисовки. |
Спасибо. Сейчас много дел навалилось, но когда освобожусь, посмотрю.
Loopback wrote: | TToolTip - похоже что самописный контрол подсказки, т.к. в дельфи такого класса нет. Как именно и на основе чего он сделан и как отрисовывается не знаю, но принципы везде одинаковы. |
Я в этом плохо разбираюсь, но "имхо" уже писал. Гислер для класса TToolTip, по всей видимости, использует обычное дочернее окно, в клиенсткую область которого текст рисуется функцией TextOut, тем самым превращая его в изображение. Кстати, и панели инструментов он свои по тому же принципу создаёт (класс TButtonBar), т.е. напрямую рисует в клиентскую область значки и хранит эти параметры для расчета координат. Поэтому ему и сложно реализовать drag-and-drop внутри панели, а не потому, что он якобы заботится о безопасности неуклюжего пользователя.
Loopback wrote: | Да, симпатично выглядит. |
Согласен. Вещь прикольная и однозначно пригодится. Мне только не нравится, что при появлении диалога звук системный проигрывается и что реализация диалога сложная. Скорее всего буду пользоваться первым вариантом, где окно создаётся через CreateWindowExW с классом msctls_progress32. Но и это вариант буду держать на примете. |
|