Прозрачные контролы в C#
От: StormRider Россия www.priezz.com
Дата: 25.08.02 18:28
Оценка:
Gospoda, podskazhite pliz, kak v C# sdelat` naprimer Label s prosrachnim fonom. Ustanovka BackgroungColor v Transparent menyaet color fona na color fona roditel`skogo controla. V chem delo?
Re: Прозрачные контролы в C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.08.02 18:39
Оценка:
Здравствуйте StormRider, Вы писали:

SR>Gospoda, podskazhite pliz, kak v C# sdelat` naprimer Label s prosrachnim fonom. Ustanovka BackgroungColor v Transparent menyaet color fona na color fona roditel`skogo controla. V chem delo?


Вообще у меня создалось впечатление, что в формсах все контролы ононные. А столо-быть нужно делать прозрачным само окно.

Т.е. в CreateParams нужно задать в стиле окна транстпарент (это по мсдн-у смотри). Длее перед перерисовкой нужно посылать InvalidateRect/UpdateWindow парент-окну. Будет маргать, но прозрачность появится. Возможно нужно будет перекрыть рисование.

Ну, или искать возможность сделать контрол безоконным.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Прозрачные контролы в C#
От: StormRider Россия www.priezz.com
Дата: 25.08.02 18:46
Оценка:
Здравствуйте VladD2, Вы писали:

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


SR>>Gospoda, podskazhite pliz, kak v C# sdelat` naprimer Label s prosrachnim fonom. Ustanovka BackgroungColor v Transparent menyaet color fona na color fona roditel`skogo controla. V chem delo?


VD>Вообще у меня создалось впечатление, что в формсах все контролы ононные. А столо-быть нужно делать прозрачным само окно.


VD>Т.е. в CreateParams нужно задать в стиле окна транстпарент (это по мсдн-у смотри). Длее перед перерисовкой нужно посылать InvalidateRect/UpdateWindow парент-окну. Будет маргать, но прозрачность появится. Возможно нужно будет перекрыть рисование.


chto-to mne podskazivaet, chto mozhno sdelat` prosche i effektivnee. a to perspektiva morganiya menya sovsem ne raduet.

P.S. sorry za translit
Re[2]: Прозрачные контролы в C#
От: TK Лес кывт.рф
Дата: 25.08.02 21:54
Оценка:
Здравствуйте VladD2, Вы писали:

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


SR>>Gospoda, podskazhite pliz, kak v C# sdelat` naprimer Label s prosrachnim fonom. Ustanovka BackgroungColor v Transparent menyaet color fona na color fona roditel`skogo controla. V chem delo?


VD>Вообще у меня создалось впечатление, что в формсах все контролы ононные. А столо-быть нужно делать прозрачным само окно.


VD>Т.е. в CreateParams нужно задать в стиле окна транстпарент (это по мсдн-у смотри). Длее перед перерисовкой нужно посылать InvalidateRect/UpdateWindow парент-окну. Будет маргать, но прозрачность появится. Возможно нужно будет перекрыть рисование.


Нужен стиль WS_EX_TRANSPARENT и наверное перекрыть Erasebackground

VD>Ну, или искать возможность сделать контрол безоконным.


Так для собственных контролов в этом никаких проблем нет...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Прозрачные контролы в C#
От: StormRider Россия www.priezz.com
Дата: 26.08.02 08:32
Оценка:
Здравствуйте TK, Вы писали:

TK>Нужен стиль WS_EX_TRANSPARENT и наверное перекрыть Erasebackground


a nelzya li popodrobnee? ya poka chaynik v C#.

TK>Так для собственных контролов в этом никаких проблем нет...


nu a esli vsyo zhe dlya uzhe gotovih tipa Label?
Re[4]: Прозрачные контролы в C#
От: TK Лес кывт.рф
Дата: 26.08.02 08:55
Оценка:
Здравствуйте StormRider, Вы писали:

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


TK>>Нужен стиль WS_EX_TRANSPARENT и наверное перекрыть Erasebackground


SR>a nelzya li popodrobnee? ya poka chaynik v C#.


Нужно перекрыть свойство CreateParams и установить нужный стиль там

Вообще нужно смотреть соотв. раздел из PlatformSDK
TK>>Так для собственных контролов в этом никаких проблем нет...

SR>nu a esli vsyo zhe dlya uzhe gotovih tipa Label?


Попробуй перекрыть OnEraseBackGround — и рисуй его полу-прозрачной кистью
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[5]: Прозрачные контролы в C#
От: StormRider Россия www.priezz.com
Дата: 26.08.02 09:02
Оценка:
Здравствуйте TK, Вы писали:

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


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


TK>>>Нужен стиль WS_EX_TRANSPARENT и наверное перекрыть Erasebackground


SR>>a nelzya li popodrobnee? ya poka chaynik v C#.


TK>Нужно перекрыть свойство CreateParams и установить нужный стиль там


TK>Вообще нужно смотреть соотв. раздел из PlatformSDK

TK>>>Так для собственных контролов в этом никаких проблем нет...

SR>>nu a esli vsyo zhe dlya uzhe gotovih tipa Label?


TK>Попробуй перекрыть OnEraseBackGround — и рисуй его полу-прозрачной кистью


a esli obrabotchik OnEraseBackgroud ostavit` pustim, to budet to, chto nado?
Re: Прозрачные контролы в C#
От: Vyacheslav_M  
Дата: 26.08.02 09:30
Оценка:
Здравствуйте StormRider, Вы писали:

SR>Gospoda, podskazhite pliz, kak v C# sdelat` naprimer Label s prosrachnim fonom. Ustanovka BackgroungColor v Transparent menyaet color fona na color fona roditel`skogo controla. V chem delo?


Не знаю, кидаю на форму картинку и Label, у label-а BackColor=Transparent и все нормально, на фоне видно картинку.
Re[2]: Прозрачные контролы в C#
От: StormRider Россия www.priezz.com
Дата: 26.08.02 09:33
Оценка:
Здравствуйте Vyacheslav_M, Вы писали:

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


SR>>Gospoda, podskazhite pliz, kak v C# sdelat` naprimer Label s prosrachnim fonom. Ustanovka BackgroungColor v Transparent menyaet color fona na color fona roditel`skogo controla. V chem delo?


VM>Не знаю, кидаю на форму картинку и Label, у label-а BackColor=Transparent и все нормально, на фоне видно картинку.


delayu to zhe samoe! i kartinki ne vidno. vidno pryamougol`nik cveta fona parent-controla
Re[6]: Прозрачные контролы в C#
От: TK Лес кывт.рф
Дата: 26.08.02 12:20
Оценка:
Здравствуйте StormRider, Вы писали:

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


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


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


TK>>>>Нужен стиль WS_EX_TRANSPARENT и наверное перекрыть Erasebackground


SR>>>a nelzya li popodrobnee? ya poka chaynik v C#.


TK>>Нужно перекрыть свойство CreateParams и установить нужный стиль там


TK>>Вообще нужно смотреть соотв. раздел из PlatformSDK

TK>>>>Так для собственных контролов в этом никаких проблем нет...

SR>>>nu a esli vsyo zhe dlya uzhe gotovih tipa Label?


TK>>Попробуй перекрыть OnEraseBackGround — и рисуй его полу-прозрачной кистью


SR>a esli obrabotchik OnEraseBackgroud ostavit` pustim, to budet to, chto nado?


Главное — что-бы то, что под ним отрисовывалось...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[7]: Прозрачные контролы в C#
От: StormRider Россия www.priezz.com
Дата: 26.08.02 12:24
Оценка:
Здравствуйте TK, Вы писали:

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


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


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


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


TK>>>>>Нужен стиль WS_EX_TRANSPARENT и наверное перекрыть Erasebackground


SR>>>>a nelzya li popodrobnee? ya poka chaynik v C#.


TK>>>Нужно перекрыть свойство CreateParams и установить нужный стиль там


TK>>>Вообще нужно смотреть соотв. раздел из PlatformSDK

TK>>>>>Так для собственных контролов в этом никаких проблем нет...

SR>>>>nu a esli vsyo zhe dlya uzhe gotovih tipa Label?


TK>>>Попробуй перекрыть OnEraseBackGround — и рисуй его полу-прозрачной кистью


SR>>a esli obrabotchik OnEraseBackgroud ostavit` pustim, to budet to, chto nado?


TK>Главное — что-бы то, что под ним отрисовывалось...


a ya chto-to takogo sobitiya u Label ne nashel. ili eto ne u nego?
Re[3]: Прозрачные контролы в C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.08.02 13:10
Оценка:
Здравствуйте TK, Вы писали:

VD>>Ну, или искать возможность сделать контрол безоконным.


TK>Так для собственных контролов в этом никаких проблем нет...


Тогда колись как? А то при наследовании от Controc создается окно...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Прозрачные контролы в C#
От: TK Лес кывт.рф
Дата: 26.08.02 13:20
Оценка:
Здравствуйте VladD2, Вы писали:

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


VD>>>Ну, или искать возможность сделать контрол безоконным.


TK>>Так для собственных контролов в этом никаких проблем нет...


VD>Тогда колись как? А то при наследовании от Controc создается окно...


Я делал это так:
Перекрываешь CreateHandle — для DesignMode вызываешь базовый метод, а для Runtime не вызываешь, а цепляешься обработчиками событий за родительский Control нужно только координаты не забыть отмаппить и все...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[6]: Прозрачные контролы в C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.08.02 15:04
Оценка:
Здравствуйте StormRider, Вы писали:

SR>a esli obrabotchik OnEraseBackgroud ostavit` pustim, to budet to, chto nado?


В .NET эрэйс бэкграунд и так перекрыт. Так что это лишнее. Просто нужно рисовать и все.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Прозрачные контролы в C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.08.02 18:36
Оценка:
Здравствуйте TK, Вы писали:

TK>...а для Runtime не вызываешь, а цепляешься обработчиками событий за родительский Control


Вот об этом интересно узнать по подробнее. К событиям .Net овским или виндузным? Да и как на счет клипинга и т.п.?

Не является ли это закатом слолнца вручную?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Прозрачные контролы в C#
От: TK Лес кывт.рф
Дата: 26.08.02 19:28
Оценка:
Здравствуйте VladD2, Вы писали:

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


TK>>...а для Runtime не вызываешь, а цепляешься обработчиками событий за родительский Control


VD>Вот об этом интересно узнать по подробнее. К событиям .Net овским или виндузным? Да и как на счет клипинга и т.п.?


События естественно нетовские. Клиппинг и т.п. придется решать самостоятельно . В конечном итоге, если используются только WindowLess элементы, то источником событий будет Form. Хотя, если делать один Control то лучше с этим и не заморачиваться... Наверное можно попробовать этим заняться в случае разработки большого framework... Опять-таки не известно на сколько он тормозным получится все-таки родной windows интерфейс наверное быстрее будет...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[7]: Прозрачные контролы в C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.08.02 21:17
Оценка:
Здравствуйте TK, Вы писали:

TK>События естественно нетовские. Клиппинг и т.п. придется решать самостоятельно . В конечном итоге, если используются только WindowLess элементы, то источником событий будет Form.


А что если с оконным контролом пересечешся?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Прозрачные контролы в C#
От: TK Лес кывт.рф
Дата: 27.08.02 02:47
Оценка:
Здравствуйте VladD2, Вы писали:

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


TK>>События естественно нетовские. Клиппинг и т.п. придется решать самостоятельно . В конечном итоге, если используются только WindowLess элементы, то источником событий будет Form.


VD>А что если с оконным контролом пересечешся?


Если все будет рисоваться на форме, то все окажется под ним...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.