Текущий архив: 2007.04.08;
Скачать: CL | DM;
Вниз
Получение смещения для DC при вызове ExtTextOut Найти похожие ветки
← →
Gero © (2006-11-18 03:35) [0]Перехватываю вызов функции ExtTextOut в Internet Explorer.
Далее смотрю на параметр Y, передаваемый в эту функцию.
Почему-то этот параметр всегда является небольшим отрицательным числом (например, -11), не зависимо от положения выводимого текста на странице.
Видимо, при выводе используется какое-то смещение, которое и определяет положение выводимой строки. Как получить это смещение?
GetWindowOrgEx для Y возвращает 0.
(Вобще параметр Y в данном случае можно брать и из GetCurrentPositionEx, но результат не меняется).
Это часть более сложной задачи, надеюсь, понятно обьяснил.
← →
Gero © (2006-11-18 03:40) [1]Да, режим отображения — MM_TEXT, если это важно.
← →
Джо © (2006-11-18 04:16) [2]Возможно, что установлено новое начало координат ViewPort"а вызовом функции
SetViewportOrgEx
.
← →
Gero © (2006-11-18 14:30) [3]> [2] Джо © (18.11.06 04:16)
Нет, ViewPort.Y тоже возвращает 0.
← →
MBo © (2006-11-18 14:36) [4]Не связано ли с вот этим?
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 parameters on subsequent ExtTextOut calls.
← →
Gero © (2006-11-18 14:38) [5]> [4] MBo © (18.11.06 14:36)
Да, я читал это, см.
> Вобще параметр Y в данном случае можно брать и из GetCurrentPositionEx,
> но результат не меняется
Вот в чем дело.
← →
Gero © (2006-11-21 22:31) [6]Разобрался, оказывается IE рисует текст в невидимый DC, а уж потом рисует полученную картинку с помощью BitBlt. Зачем такое сделано, непонятно.
← →
Джо © (2006-11-21 22:35) [7]> [6] Gero © (21.11.06 22:31)
> Разобрался, оказывается IE рисует текст в невидимый DC,
> а уж потом рисует полученную картинку с помощью BitBlt.
> Зачем такое сделано, непонятно.
Ну дык, дабл-буфер, так сказать, наверное :)
← →
Gero © (2006-11-21 22:53) [8]> [7] Джо © (21.11.06 22:35)
Странный какой-то дабл-буфер, не по-людски сделано :)
← →
Джо © (2006-11-21 22:57) [9]> [8] Gero © (21.11.06 22:53)
> > [7] Джо © (21.11.06 22:35)
>
> Странный какой-то дабл-буфер, не по-людски сделано :)
Кто его поймет, этот великий и ужасный Mosaic... тьфу, IExplorer? :)
← →
guav © (2006-11-21 23:13) [10]ExtTextOut принимает массив координат буков, при наличии флага ETO_PDY, там есть и Y координаты.
← →
Gero © (2006-11-21 23:25) [11]> [10] guav © (21.11.06 23:13)
Нет, этот флаг не используется.
← →
Gero © (2006-11-21 23:26) [12]В общем, всем ответившим — спасибо! )
← →
Rouse_ © (2006-11-22 16:06) [13]
> Странный какой-то дабл-буфер, не по-людски сделано :)
Ы? А как по людски? :)
Страницы: 1 вся ветка
Текущий архив: 2007.04.08;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.03 c