Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение смещения для 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, если это важно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо