Чем Win рисует заголовки окон
От: Дядя Костя Россия  
Дата: 24.01.02 11:56
Оценка:
Всеобщий Добрый День!

Разбирался ли кто-нибудь с тем, как Windows рисует надписи в меню, заголовках окон и т.п. Имеется в виду, делает она это чем-нибудь APIшным, вроде DrawText, или внутренней системной процедурой и, коли так, где эту процедуру искать?
Заранее черезвычайно признателен за любую информацию (просьба сильно не пинать, знаю, что этот вопрос недавно задавали, но не знаю ответа). При ответе RTFM просьба ссылаться на конкретные FM.

Костя
---
У дяди Кости левых нет доходов...
Re: Чем Win рисует заголовки окон
От: OlegO Россия http://www.mediachase.ru
Дата: 24.01.02 12:19
Оценка:
Здравствуйте Дядя Костя, Вы писали:

ДК>Всеобщий Добрый День!


ДК>Разбирался ли кто-нибудь с тем, как Windows рисует надписи в меню, заголовках окон и т.п. Имеется в виду, делает она это чем-нибудь APIшным, вроде DrawText, или внутренней системной процедурой и, коли так, где эту процедуру искать?

ДК>Заранее черезвычайно признателен за любую информацию (просьба сильно не пинать, знаю, что этот вопрос недавно задавали, но не знаю ответа). При ответе RTFM просьба ссылаться на конкретные FM.

ДК>Костя


Конечное через API я надеюсь

Именно через DrawText(), а что тебя смущает? или не хватает
DT_END_ELLIPSIS, DT_PATH_ELLIPSIS все же есть
С уважением, OlegO.
Re[2]: Чем Win рисует заголовки окон
От: Аноним  
Дата: 24.01.02 12:35
Оценка:
Здравствуйте OlegO, Вы писали:

OO>Здравствуйте Дядя Костя, Вы писали:


OO>Конечное через API :)


OO>Именно через DrawText(), а что тебя смущает? или не хватает

OO>DT_END_ELLIPSIS, DT_PATH_ELLIPSIS все же есть :???:

А смущает
1) Перехватываю DrawText (по Рихтеру), пишу все, что он выводит в лог и не вижу ни одного заголовка окна в логе. Может надо перехватывать DrawTextEx, руки еще не дошли. :(
2) DT_END_ELLIPSIS тут совсем не причем. Задача стоит так: нужно ловить все, что выводит Windows в качестве заголовков окон, кнопочек и прочих контролов и изменять ему шрифт на заданный. Парень мучается над этой задачей уже две недели, теперь вот я подключился... :(

Удачной охоты!

Костя
Re[3]: Sorry, конечно это был я.
От: Дядя Костя Россия  
Дата: 24.01.02 12:37
Оценка:
:???:
---
У дяди Кости левых нет доходов...
Re[3]: Чем Win рисует заголовки окон
От: OlegO Россия http://www.mediachase.ru
Дата: 24.01.02 12:56
Оценка:
Здравствуйте Аноним, Вы писали:

А>Здравствуйте OlegO, Вы писали:


OO>>Здравствуйте Дядя Костя, Вы писали:


OO>>Конечное через API


OO>>Именно через DrawText(), а что тебя смущает? или не хватает

OO>>DT_END_ELLIPSIS, DT_PATH_ELLIPSIS все же есть

А>А смущает

А>1) Перехватываю DrawText (по Рихтеру), пишу все, что он выводит в лог и не вижу ни одного заголовка окна в логе. Может надо перехватывать DrawTextEx, руки еще не дошли.
А>2) DT_END_ELLIPSIS тут совсем не причем. Задача стоит так: нужно ловить все, что выводит Windows в качестве заголовков окон, кнопочек и прочих контролов и изменять ему шрифт на заданный. Парень мучается над этой задачей уже две недели, теперь вот я подключился...

А>Удачной охоты!


А>Костя


Рекомендую посмотреть в дебагере, к каким функциям DrawText обращается и многое думаю станет на свои места.
С уважением, OlegO.
Re[3]: Чем Win рисует заголовки окон
От: Alex Fedotov США  
Дата: 24.01.02 17:24
Оценка:
Здравствуйте Аноним, Вы писали:

А>А смущает

А>1) Перехватываю DrawText (по Рихтеру), пишу все, что он выводит в лог и не вижу ни одного заголовка окна в логе. Может надо перехватывать DrawTextEx, руки еще не дошли.
А>2) DT_END_ELLIPSIS тут совсем не причем. Задача стоит так: нужно ловить все, что выводит Windows в качестве заголовков окон, кнопочек и прочих контролов и изменять ему шрифт на заданный. Парень мучается над этой задачей уже две недели, теперь вот я подключился...

Если речь идет про NT 4 и старше, то там большая часть non-client area рисуется в kernel mode из win32k.sys.

Если речь идет про Win9x, то там это рисуется из 16-битного user.exe.

Таким образом, перехватывать какие-либо функции Win32 API бессмысленно.
-- Alex Fedotov
Re: Чем Win рисует заголовки окон
От: ioni Россия  
Дата: 24.01.02 20:32
Оценка:
Здравствуйте Дядя Костя, Вы писали:

ДК>Всеобщий Добрый День!


ДК>Разбирался ли кто-нибудь с тем, как Windows рисует надписи в меню, заголовках окон и т.п. Имеется в виду, делает она это чем-нибудь APIшным, вроде DrawText, или внутренней системной процедурой и, коли так, где эту процедуру искать?

ДК>Заранее черезвычайно признателен за любую информацию (просьба сильно не пинать, знаю, что этот вопрос недавно задавали, но не знаю ответа). При ответе RTFM просьба ссылаться на конкретные FM.

ДК>Костя



вроде в архивах msdn что то про это мелькало
Re[4]: Чем Win рисует заголовки окон
От: Дядя Костя Россия  
Дата: 25.01.02 07:13
Оценка:
Сразу два вопроса:
1) А чем вызываются эти функции? Напрямую или через API? Отловить-то нужно момент обращения, а не собственно рисования.
2) Есть ли документация/информация по этим модулям?

Здравствуйте Alex Fedotov, Вы писали:

AF>Здравствуйте Аноним, Вы писали:


А>>А смущает

А>>1) Перехватываю DrawText (по Рихтеру), пишу все, что он выводит в лог и не вижу ни одного заголовка окна в логе. Может надо перехватывать DrawTextEx, руки еще не дошли. :(
А>>2) DT_END_ELLIPSIS тут совсем не причем. Задача стоит так: нужно ловить все, что выводит Windows в качестве заголовков окон, кнопочек и прочих контролов и изменять ему шрифт на заданный. Парень мучается над этой задачей уже две недели, теперь вот я подключился... :(

AF>Если речь идет про NT 4 и старше, то там большая часть non-client area рисуется в kernel mode из win32k.sys.


AF>Если речь идет про Win9x, то там это рисуется из 16-битного user.exe.


AF>Таким образом, перехватывать какие-либо функции Win32 API бессмысленно.
---
У дяди Кости левых нет доходов...
Re[5]: Чем Win рисует заголовки окон
От: Alex Fedotov США  
Дата: 25.01.02 07:17
Оценка:
Здравствуйте Дядя Костя, Вы писали:

ДК>1) А чем вызываются эти функции? Напрямую или через API? Отловить-то нужно момент обращения, а не собственно рисования.


Вопрос не понят. Какая конечная задача стоит?

ДК>2) Есть ли документация/информация по этим модулям?


Нет.

AF>>Если речь идет про NT 4 и старше, то там большая часть non-client area рисуется в kernel mode из win32k.sys.


AF>>Если речь идет про Win9x, то там это рисуется из 16-битного user.exe.


AF>>Таким образом, перехватывать какие-либо функции Win32 API бессмысленно.
-- Alex Fedotov
Re[6]: Чем Win рисует заголовки окон
От: Дядя Костя Россия  
Дата: 25.01.02 07:21
Оценка:
Уже писал. Конечная задача — перехватывать обращения на отрисовку заголовков всех окон и контролов в системе и корректировать параметры используемого при этом шрифта.

AF>Вопрос не понят. Какая конечная задача стоит?
---
У дяди Кости левых нет доходов...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.