Прозрачность формы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Smith68
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 92
Зарегистрирован: 02.09.2005 (Пт) 19:08
Откуда: Тамбов, Моршанск

Прозрачность формы

Сообщение Smith68 » 30.05.2006 (Вт) 20:12

Я слышал такую тему...

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

Реально ли это?
И если реально, то как это сделать?
Вчера на работе получил производственную травму: ударил палец о палец.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 30.05.2006 (Вт) 20:18

А известно ли уважаемому суду, что писать в этот форум до набора 120 постингов нельзя?

Сделать две фигурные формы одну над другой.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2006 (Вт) 21:11

Код: Выделить всё
Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

crKey - тот цвет, который должен быть прозрачным - т.е. обрезаться.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 30.05.2006 (Вт) 21:35

2 Хакер

А на 9х будем созерцать падение программы из-за отсутствующей API?
Вложения
TranspRgn_.rar
Моя вариация примера с PSC
(6.45 Кб) Скачиваний: 39
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2006 (Вт) 21:38

BV
Вот может быть хоть это заставит человечество перейти с гадости на нормальную серьёзную ось.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.05.2006 (Вт) 21:46

Хакер писал(а):Вот может быть хоть это заставит человечество перейти с гадости на нормальную серьёзную ось.

То есть Windows 98 не является операционной системой?
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2006 (Вт) 21:48

Является, но то малое знание того как она устроенна уже не даёт мне её уважать так, как я уважаю NT-основанные...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение keks-n » 30.05.2006 (Вт) 21:56

9x не уважаю из-за недоделанного Win32
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2006 (Вт) 22:02

Холи вар начинается :lol:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.05.2006 (Вт) 22:10

Тем не менее, MS довольно старательно подходит к сохранению обратной совместимости. А заманивать пользователей на новые ОС предпочитают другими способами, нежели написание несовместимого с предыдущими системами ПО.
Lasciate ogni speranza, voi ch'entrate.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 30.05.2006 (Вт) 22:15

alibek, перемести тему в холивары.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

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

Сообщение keks-n » 30.05.2006 (Вт) 22:15

Ну так можно делать GetProcAddress, и если нам вернут ошибку-сказать юзеру, мол, извините, но винда у вас старая и окошко будет немножко некрасивым :D
Последний раз редактировалось keks-n 30.05.2006 (Вт) 22:19, всего редактировалось 1 раз.
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2006 (Вт) 22:17

9x - точно должен уйти. Как подумаю: какая зависимость от ДОСа, единое АП для всех процессов и куча других бед... нет... не жит 9Х.

___________
ЗЫ. 9 - это 2009 год, год когда последний юзер откажется от 9х.
А Х - олицетворяет "конец" :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Сообщение keks-n » 30.05.2006 (Вт) 22:26

Ещё в 9x присутствуют 16-разрядные сервисы, обращение к которым приводит систему к one-threading :evil: . Да и BIOS прошить нуликами никто не мешает, ибо никто не мешает из 3 кольца(Ахтунг!) обратиться напрямки к железу.

З. Ы. Но у меня 98 будет стоять ещё долго, как средство реанимации NT(ибо не редко не только падает, но и разбивается в дребезги :( ), и для запуска некоторых прог, которые по мнению NT не "являются приложением Win32".
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.05.2006 (Вт) 22:29

вообще 9х наполовину 16 разрядная.

А как средство восстановления... хм... имхо ERD Commander 2005 рулит ибо без труда понимает NTFS разделы, а под 9Х надо деревья всякие там "ёлки и палки для поддержки NTFS" ставить, так что...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 31.05.2006 (Ср) 2:08

keks-n писал(а):Ну так можно делать GetProcAddress, и если нам вернут ошибку-сказать юзеру, мол, извините, но винда у вас старая и окошко будет немножко некрасивым :D

А можно поступать ещё проще, и отлавливать ошибку при вызове SetLayeredWindowAttributes... Или мы не ищем лёгких решений?



Хакер писал(а):9x - точно должен уйти. Как подумаю: какая зависимость от ДОСа, единое АП для всех процессов и куча других бед... нет... не жит 9Х.

Неправда. Единое АП для всех процессов последний раз было в Win31.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.05.2006 (Ср) 5:54

Судя по постам Хакер'а, он очень плохо себе представляет 9x, но относится к числу лиц, считающих, что стадно кричать "_____ отстой, потому что _____ рулез" - это круто...

Тему переношу.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 31.05.2006 (Ср) 10:03

GSerg, не отнашусь я к этому числу. Отношусь к тому, которые сначала ищут все + и - , а только потом кичат.
Wikipedia писал(а):Семейство ОС, разработанных специально для процессоров с 32-битной архитектурой, на рынке позиционировались, как 32-разрядные ОС, однако содержали большое количество 16-битного кода, а собственно 32-х разрядное ядро было усовершенствованным ядром Windows 3.1/3.11, работающим в расширенном режиме.

Windows 95 (1995)
Windows 98 (1998)
Windows Millenium Edition (Me) (2000)
Основной стратегической задачей создания семейств Windows 9x являлось преемственность программ, написанных для MS-DOS. Поскольку MS-DOS предоставляла полный доступ ко всем периферийным устройствам, памяти кода операционной системы, памяти кода драйверов устройств, а также памяти других программ, исполняющихся в системе, семейство Windows 9x (также как и MS-DOS) позволяло умышленную или неумышленную порчу содержимого оперативной памяти, что могло привести к «зависанию» или некорректной работе системы.


Wikipedia писал(а):По сути, данная операционная система — это обновлённая версия Windows 95, по-прежнему являющаяся гибридным 16/32-разрядным продуктом, основанном на MS-DOS. Улучшениям подверглась поддержка AGP, доработаны драйверы USB, добавлена поддержка работы с несколькими мониторами и поддержка WebTV. Как и в последних выпусках Windows 95, в интерфейс системы интегрирован Internet Explorer (функция Active Desktop). Windows 98 стала первой версией Windows, поддерживающей стандарт ACPI.

Внутренний номер «первой редакции» Windows 98 — 4.10.1998, либо 4.10.1998A — после применения одного из обновлений.


Разве что миллениум чуть-чуть оторвался от ДОС,а

Про NT я думаю писать ничего не надо, все и так знают...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 31.05.2006 (Ср) 12:45

Хакер писал(а):Разве что миллениум чуть-чуть оторвался от ДОС,а

Да ну прямо?
Изображение

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 01.06.2006 (Чт) 20:53

Хакер писал(а):GSerg, не отнашусь я к этому числу. Отношусь к тому, которые сначала ищут все + и - , а только потом кичат.
Wikipedia писал(а):Семейство ОС, разработанных специально для процессоров с 32-битной архитектурой, на рынке позиционировались, как 32-разрядные ОС, однако содержали большое количество 16-битного кода, а собственно 32-х разрядное ядро было усовершенствованным ядром Windows 3.1/3.11, работающим в расширенном режиме.

Windows 95 (1995)
Windows 98 (1998)
Windows Millenium Edition (Me) (2000)
Основной стратегической задачей создания семейств Windows 9x являлось преемственность программ, написанных для MS-DOS. Поскольку MS-DOS предоставляла полный доступ ко всем периферийным устройствам, памяти кода операционной системы, памяти кода драйверов устройств, а также памяти других программ, исполняющихся в системе, семейство Windows 9x (также как и MS-DOS) позволяло умышленную или неумышленную порчу содержимого оперативной памяти, что могло привести к «зависанию» или некорректной работе системы.


Wikipedia писал(а):По сути, данная операционная система — это обновлённая версия Windows 95, по-прежнему являющаяся гибридным 16/32-разрядным продуктом, основанном на MS-DOS. Улучшениям подверглась поддержка AGP, доработаны драйверы USB, добавлена поддержка работы с несколькими мониторами и поддержка WebTV. Как и в последних выпусках Windows 95, в интерфейс системы интегрирован Internet Explorer (функция Active Desktop). Windows 98 стала первой версией Windows, поддерживающей стандарт ACPI.

Внутренний номер «первой редакции» Windows 98 — 4.10.1998, либо 4.10.1998A — после применения одного из обновлений.


Разве что миллениум чуть-чуть оторвался от ДОС,а

Про NT я думаю писать ничего не надо, все и так знают...


ME не отован от ДОСа. "Мелкософт его там прячет."

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.06.2006 (Чт) 21:07

NIC, оверквотинг (страница цитаты на строчку текста, к тому же дублирующую предыдущий пост) есть нарушение правила №14.
Изображение

NIC
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 175
Зарегистрирован: 26.04.2005 (Вт) 4:50

Сообщение NIC » 01.06.2006 (Чт) 21:48

tyomitch писал(а):NIC, оверквотинг (страница цитаты на строчку текста, к тому же дублирующую предыдущий пост) есть нарушение правила №14.

Всё понял.Более не повториться. :wink:


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: AhrefsBot и гости: 56

    TopList