передний план

Создание, использование компонентов ActiveX
Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

передний план

Сообщение Sirik » 10.07.2006 (Пн) 8:20

создал свой компонент, но появились проблеммы: он постоянно пепекрывает другие компоненты, такие как:
label, shape.

метод 'послать на задний план' не помогает. что делать?

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.07.2006 (Пн) 9:11

Это потому, что они не имеют своего окна, а являются обёртками для API и рисуются в обработчике WM_PAINT. Поскольку твой контрол имеет своё окно, то он заслоняет всё, что нарисовани на форме.

Выход: Прятать, при запуске контрол, сабклассить форму на предмет WM_PAINT и в его обработчике рисовать всё на DC формы.
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 10.07.2006 (Пн) 9:24

нет, так нельзя, у меня контроль обеспечивает скин окну

зы. если что, вот скин
У вас нет доступа для просмотра вложений в этом сообщении.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.07.2006 (Пн) 10:14

Именно самому окну? То есть у тебя контрол растягивается на свё окно, да?
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.07.2006 (Пн) 10:17

Вот окно, скин которого обеспечивается контролом, перехватывающим нужные сообщения. Как можно заметить-Label никуда не исчез.
У вас нет доступа для просмотра вложений в этом сообщении.
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 10.07.2006 (Пн) 10:19

да у меня контрол растягивается на всё окно

как ты сделал, чтобы label был виден?

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.07.2006 (Пн) 10:23

Сабклассингом окна. Сам контрол на форме вообще не показывается. В старых версиях делал так: в UserControl_Show получал свойство Parent(объект формы) и ловил PForm_Paint и другие события.
Изображение

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 10.07.2006 (Пн) 10:42

м-да... ладно буду разбираься

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 10.07.2006 (Пн) 13:52

Sirik писал(а):нет, так нельзя, у меня контроль обеспечивает скин окну
зы. если что, вот скин


Тогда просто укажи что твой контрол является контейнером для других и тот-же Label ляжет в него замечательно. IMHO это тебе и нужно - и никаких перерисовок.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 10.07.2006 (Пн) 14:10

м-да... спасибо, помогло


Вернуться в Компоненты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList