![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
Доброе время суток!
У меня следующий вопрос: как можно сделать так чтобы использовать компоненты windows, но самому рисовать дизайн поля (например EDIT, RICHEDIT). Хочу сделать свое оформление для этих компонентов Заранее всем спасибо! --------------------
здесь хреновые модераторы... |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
сабклассируй, и переопредели WM_DRAW
|
|||
|
||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
Можно пожалуйста поподробней, просто такое никогда не делал
--------------------
здесь хреновые модераторы... |
|||
|
||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
разобрался с сабклассингом, но как узнать что рисовать? (например текст и скролбар)
--------------------
здесь хреновые модераторы... |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
RapMan, конкретнее формулируй вопрос, либо подкрепи его картинкой какой-нибудь соответствующей, чтобы тебя поняли -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
вопрос в следующем:
я хочу сделать свой стиль для richedit, то есть сделай другое оформление для scrollbar в нем Заранее спасибо! --------------------
здесь хреновые модераторы... |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
RapMan, включаю третий глаз и начинаю сеанс телепатии!
предполагаю, что тебе неизвестны координаты скроллбара и ты хотел бы их узнать, чтобы поверх системной раскраски компонента, навесить свою разом получить всю информацию не получится координаты скроллбара и состояния кнопок - с помошью GetScrollBarInfo размеры кнопок - GetSystemMetrics, дополнительные параметры(число линий прокрутки, скорость, сглаживание) - SystemParametersInfo стандартный вид кнопок - DrawFrameControl для XP-тем - координаты отдельных элементов - GetThemeBackgroundContentRect для определения, используется ли XP-темы - IsThemeActive -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
хм, сейчас попробую поподробней описать.
я так понимаю мне нужно ловить WM_PAINT чтобы переписать дизайн прокрутки (или я ошибаюсь?) я хочу нарисовать свой скролбар и очень хорошо если бы разноцветный текст. не знаю какие сообщения отлавливать и как синхронизировать скролбар системы и свой --------------------
здесь хреновые модераторы... |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
смотря какой скроллбар, если скроллбар-компонент, то у него своя логика, это полноценное окно если скроллбар встроенный - он в неклиентской области рисуется (WM_NCPAINT) а как связан скроллбар с текстом вообще? почитай уже раскрытые темы: http://forum.vingrad.ru/act-Search/CODE/sh...aint/index.html http://forum.vingrad.ru/act-Search/CODE/sh...roll/index.html http://forum.vingrad.ru/act-Search/CODE/sh...info/index.html ключевые слова подсвечены в темах -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
Спасибо, посмотрю...
я имел ввиду второй вариант:
текст у RichEdit-а --------------------
здесь хреновые модераторы... |
|||
|
||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
сделал все следующим образом:
написал я свой scrollbar и подключил к richedit-у используя функцию GetScrollBarInfo, но она корректно возвращает только если при создание richedit-а указать флаг WS_VSCROLL, но так как я рисую свой scrollbar , то мне не нужен он от венды, по этому как его можно выключить? Заранее всем спасибо! --------------------
здесь хреновые модераторы... |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
зачем выключать скроллбар? просто не используй его и все для этого достаточно просто не опираться на координаты GetScrollBarInfo, а резервировать свою область под свой сколлбар начинай смотреть вот эту тему, с 3 страницы: http://forum.vingrad.ru/index.php?showtopi...t&p=1612530 когда начнет приходить понимание, что такое неклиентские координаты и как их использовать, перенеси этот опыт на скроллбар ps: может тогда заодно и свой RichEdit напишешь -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
да мне GetScrollBarInfo нужен только чтобы взять SIF_RANGE, то есть промежуток который нужно использовать для прокрутки.
--------------------
здесь хреновые модераторы... |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
посчитай строки, в чем проблема? EM_GETLINECOUNT -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
RapMan |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 13.6.2008 Репутация: нет Всего: нет |
Большое Человеческое Спасибо! Поставил бы + в репу, но пока нету такого права
![]() а еще вопросика 2 есть ![]() 1) как можно узнать текущую позицию скролбара? 2) как можно сделать фон richedit прозрачным? --------------------
здесь хреновые модераторы... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |