Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1173794839
novill
2007-03-13 17:07
2007.04.08
Гостевую специально отключили?


1-1171362268
StriderMan
2007-02-13 13:24
2007.04.08
Редактор скриптов JScript


15-1174033221
Gerew
2007-03-16 11:20
2007.04.08
Пожалуйста, помогите найти ошибку!


15-1173901069
default
2007-03-14 22:37
2007.04.08
Alcohol52%


2-1173473079
Ezorcist
2007-03-09 23:44
2007.04.08
JPEG