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?
Здравствуйте 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 парент-окну. Будет маргать, но прозрачность появится. Возможно нужно будет перекрыть рисование.
Ну, или искать возможность сделать контрол безоконным.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте 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.
Здравствуйте 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>Ну, или искать возможность сделать контрол безоконным.
Так для собственных контролов в этом никаких проблем нет...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте 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 — и рисуй его полу-прозрачной кистью
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте 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?
Здравствуйте 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 и все нормально, на фоне видно картинку.
Здравствуйте 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
Здравствуйте 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, Вы писали:
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?
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте TK, Вы писали:
VD>>>Ну, или искать возможность сделать контрол безоконным.
TK>>Так для собственных контролов в этом никаких проблем нет...
VD>Тогда колись как? А то при наследовании от Controc создается окно...
Я делал это так:
Перекрываешь CreateHandle — для DesignMode вызываешь базовый метод, а для Runtime не вызываешь, а цепляешься обработчиками событий за родительский Control нужно только координаты не забыть отмаппить и все...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте TK, Вы писали:
TK>>...а для Runtime не вызываешь, а цепляешься обработчиками событий за родительский Control
VD>Вот об этом интересно узнать по подробнее. К событиям .Net овским или виндузным? Да и как на счет клипинга и т.п.?
События естественно нетовские. Клиппинг и т.п. придется решать самостоятельно . В конечном итоге, если используются только WindowLess элементы, то источником событий будет Form. Хотя, если делать один Control то лучше с этим и не заморачиваться... Наверное можно попробовать этим заняться в случае разработки большого framework... Опять-таки не известно на сколько он тормозным получится все-таки родной windows интерфейс наверное быстрее будет...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте TK, Вы писали:
TK>События естественно нетовские. Клиппинг и т.п. придется решать самостоятельно . В конечном итоге, если используются только WindowLess элементы, то источником событий будет Form.
А что если с оконным контролом пересечешся?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте TK, Вы писали:
TK>>События естественно нетовские. Клиппинг и т.п. придется решать самостоятельно . В конечном итоге, если используются только WindowLess элементы, то источником событий будет Form.
VD>А что если с оконным контролом пересечешся?
Если все будет рисоваться на форме, то все окажется под ним...
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.