Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Прозрачность и управление "сквозь" форму.


Автор: Legolas 9.1.2008, 18:07
Возможно ли сделать так, чтобы сквозь прозрачную форму можно было управлять окном под ней. То есть если форма открыта на рабочем столе, то переносить\запускать ярлыки\папки, если же под ней интернет браузер, то свободно просматривать страницы? главное чтобы форма оставалась на ними, а активировалась сочетанием клавиш например... 

Автор: mr.DUDA 10.1.2008, 11:25
ИМХО, никак нельзя. Если есть окно - оно будет обрабатывать все сообщения поступающие к нему от мыши и т.п. Если только не извратиться, искать следующее окно по Z и перекидывать все сообщения кроме WM_PAINT с пом. SendMessage  smile 

Автор: PPS05 10.1.2008, 19:41
mr.DUDA, мне кажется, вы не правы. Если задать свойство TransparentKey, то часть формы с этим цветом свободно пропускает действия "под себя".

Автор: mr.DUDA 10.1.2008, 23:44
Цитата(PPS05 @  10.1.2008,  18:41 Найти цитируемый пост)
Если задать свойство TransparentKey, то часть формы с этим цветом свободно пропускает действия "под себя".

А вот и нет, попробовал только что - не пропускает  smile 

Автор: Legolas 10.1.2008, 23:44
PPS05, можно чуть-чуть поподробнее =)

Добавлено через 9 минут и 57 секунд
PPS05, сквозь форму получается, но у меня на всю форму WinMediaPlayer растянут как сквозь него можно?

Добавлено через 14 минут и 32 секунды
mr.DUDA, можно ли заставить компьютер думать, что мой контрол невидим, а в действительности оставить его видимым?

Автор: Legolas 11.1.2008, 00:02
может быть как нибудь изменять свойство "Focused", хотя оно read-only

Автор: mr.DUDA 11.1.2008, 11:01
Если просто сбрасывать Focused, получится что фокус ввода уберётся с формы и всё. Это ничего не даст для решения проблемы управления сквозь форму.

Автор: Legolas 11.1.2008, 14:05
mr.DUDA, 
Цитата

mr.DUDA, можно ли заставить компьютер думать, что мой контрол невидим, а в действительности оставить его видимым? 


Можно? каким-нибудь способом? даже самым извращенным - главное что работало  smile 

Автор: mr.DUDA 11.1.2008, 14:53
Цитата(Legolas @  11.1.2008,  13:05 Найти цитируемый пост)
Можно? каким-нибудь способом? 

ответ уже был:
Цитата(mr.DUDA @  10.1.2008,  10:25 Найти цитируемый пост)
ИМХО, никак нельзя.


а насчёт извращённого способа - это только мои предположения, не пробовал не знаю...

Автор: PPS05 11.1.2008, 14:58
Цитата(mr.DUDA @  10.1.2008,  22:44 Найти цитируемый пост)
А вот и нет, попробовал только что - не пропускает

А почему у меня получилось?  smile 

Цитата(Legolas @  10.1.2008,  22:44 Найти цитируемый пост)
можно ли заставить компьютер думать, что мой контрол невидим, а в действительности оставить его видимым?

С контролом все хуже... Я не пробовал, но можно попытаться обработать WM_NCHITTEST и вернуть HTNOWHERE:
Цитата

HTNOWHERE    On the screen background or on a dividing line between windows.



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)