![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| NUCLEuS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
Привет всем!
Суть проблемы - необходимо залить некоторый прямоугольник. Этот прямоугольник - Static. Я делаю так - получаю прямоугольник Static'a GetWindowsRect, получаю его DC, создаю Brush, наконец заливаю его FillRect'ом. Но вот проблема - заливается не весь Static а кусочек нижнего правого угла. Как будто GetWindowsRect вернул что то не то. Как бы мне залить весь Static и в чём моя ошибка ??? Ведь вроде всё правильно. Вот кусок кода:
|
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 29 Всего: 191 |
Если нужно залить Static, то можно это сделать намного легче. Нужно обрабатывать сообщение WM_CTLCOLORSTATIC у родителя:
Здесь TmpBrush - переменная для дескриптора кисти. Это сообщение отредактировал(а) Rrader - 26.9.2005, 07:14 |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Да нет, залить Static это так для примера, я вообще буду на Static рисовать прямоугольник, так что твой способ непрокатит, мне нужно именно правильное использование FillRect! Помогите кто знает
|
|||
|
||||
| NUCLEuS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
Пардон, это я писал, только забыл Login сделать |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 29 Всего: 191 |
||||
|
||||
| NUCLEuS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
Объясняю, у меня есть координаты прямоугольника, вернее они произвольные, их нужно ввести, потом по этим координатам рисуется прямоугольник, и заливается FillRect'oм. Но это потом. Сейчас мне интересно почему GetWindowRect возвращает такой будяк...
|
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 29 Всего: 191 |
Потому что GetWindowRect возвращает координаты прямоугольника окна относительно экрана, а не родительского окна.
Добавлено @ 13:37 Щас дам код, как пересчитать. |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 29 Всего: 191 |
Короче, замени GetWindowRect на GetClientRect. Поможет!
|
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Rrader
p0s0l Спасибо, Тему можно закрывать. |
|||
|
||||
| NUCLEuS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 12.7.2005 Репутация: нет Всего: нет |
^^^^^^^^^^^^^^^^^^^^
Опять забыл за Login. Извините. |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |