![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение смещения для DC при вызове ExtTextOut
Gero © (2006-11-18 03:35:00)Перехватываю вызов функции ExtTextOut в Internet Explorer.
Далее смотрю на параметр Y, передаваемый в эту функцию.
Почему-то этот параметр всегда является небольшим отрицательным числом (например, -11), не зависимо от положения выводимого текста на странице.
Видимо, при выводе используется какое-то смещение, которое и определяет положение выводимой строки. Как получить это смещение?
GetWindowOrgEx для Y возвращает 0.
(Вобще параметр Y в данном случае можно брать и из GetCurrentPositionEx, но результат не меняется).
Это часть более сложной задачи, надеюсь, понятно обьяснил.
Rouse_ (2006-11-22 16:06:00) [1]
> Странный какой-то дабл-буфер, не по-людски сделано :)
Ы? А как по людски? :)
Gero (2006-11-21 23:26:00) [2]В общем, всем ответившим — спасибо! )
Gero (2006-11-21 23:25:00) [3]> [10] guav © (21.11.06 23:13)
Нет, этот флаг не используется.
guav (2006-11-21 23:13:00) [4]ExtTextOut принимает массив координат буков, при наличии флага ETO_PDY, там есть и Y координаты.
Джо (2006-11-21 22:57:00) [5]> [8] Gero © (21.11.06 22:53)
> > [7] Джо © (21.11.06 22:35)
>
> Странный какой-то дабл-буфер, не по-людски сделано :)
Кто его поймет, этот великий и ужасный Mosaic... тьфу, IExplorer? :)
Gero (2006-11-21 22:53:00) [6]> [7] Джо © (21.11.06 22:35)
Странный какой-то дабл-буфер, не по-людски сделано :)
Джо (2006-11-21 22:35:00) [7]> [6] Gero © (21.11.06 22:31)
> Разобрался, оказывается IE рисует текст в невидимый DC,
> а уж потом рисует полученную картинку с помощью BitBlt.
> Зачем такое сделано, непонятно.
Ну дык, дабл-буфер, так сказать, наверное :)
Gero (2006-11-21 22:31:00) [8]Разобрался, оказывается IE рисует текст в невидимый DC, а уж потом рисует полученную картинку с помощью BitBlt. Зачем такое сделано, непонятно.
Gero (2006-11-18 14:38:00) [9]> [4] MBo © (18.11.06 14:36)
Да, я читал это, см.
> Вобще параметр Y в данном случае можно брать и из GetCurrentPositionEx,
> но результат не меняется
Вот в чем дело.
MBo (2006-11-18 14:36:00) [10]Не связано ли с вот этим?
By default, the current position is not used or updated by this function. However, an application can call the SetTextAlign function with the fMode parameter set to TA_UPDATECP to permit Windows to use and update the current position each time the application calls ExtTextOut for a specified device context. When this flag is set, Windows ignores the X and Y parameterson subsequent ExtTextOut calls.
Gero (2006-11-18 14:30:00) [11]> [2] Джо © (18.11.06 04:16)
Нет, ViewPort.Y тоже возвращает 0.
Джо (2006-11-18 04:16:00) [12]Возможно, что установлено новое начало координат ViewPort'а вызовом функции
SetViewportOrgEx.
Gero (2006-11-18 03:40:00) [13]Да, режим отображения — MM_TEXT, если это важно.