Главная страница
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.5 MB
Время: 0.029 c
2-1173859619
AHTOH
2007-03-14 11:06
2007.04.08
Работа с файлами в NT/XP с ограниченными правами


15-1174154907
ProgRAMmer Dimonych
2007-03-17 21:08
2007.04.08
В очередной раз попытался научиться 3D-программированию...


15-1173902441
eXPell
2007-03-14 23:00
2007.04.08
От нечего делать....


15-1173971063
alx2000
2007-03-15 18:04
2007.04.08
Предложение к администраторам форума.


2-1173976988
Malik
2007-03-15 19:43
2007.04.08
Что за Word2000 в uses и где его взять?