Как сделать окно прозрачным c

Обновлено: 28.04.2024

Как сделать окно прозрачным

Однако, Мелкософт не включил эту фишку в Win 9x, так что тут все гораздо хуже: я не видел ни одной проги под Win 9x, которая бы умела становиться полупрозрачной. Можно сделать полностью прозрачное окно, но оно будет "съедать" кучу системных ресурсов. Сделать это можно, например, через CreateEllipticRgn или назначая "маску" диалоговому окну.

This article shows how you can make your apps transparent using the new functions provided with Win2K.
If you download the Platform SDK from Microsoft then these functions will be available, but those of you without fast Internet connections this article could be useful.
This is a mix of stuff I found on the net so if anyone feels that I have stolen something and should get the credit, sorry.
The functions you want are included in the USER32.DLL in Win2K, but the SDK provides the header files and the source code in libraries. But to use the functions one could just import the functions from the USER32.DLL. So here it goes.

First some constants must be declared:
Then some declarations in the header-file:
lpfnSetLayeredWindowAttributes m_pSetLayeredWindowAttributes

hwnd [in] Handle to the layered window.

crKey [in] Pointer to a COLORREF value that specifies the transparency color key to be used. (When making a certain color transparent. )

bAlpha [in] Alpha value used to describe the opacity of the layered window. 0 = Invisible, 255 = Fully visible

Как сделать прозрачную форму?

Как сделать прозрачную форму при этом чтоб все компоненты можно было видеть. функция Opacity Не подходит.

Добавлено через 5 минут
TransparencyKey = BackColor;
то что надо

Помощь в написании контрольных, курсовых и дипломных работ здесь.

94731 / 64177 / 26122 Ответы с готовыми решениями:

Как сделать прозрачную форму с непрозрачными элементами
Нашёл функцию Opacity, но она делает прозрачной и форму, и всё что на ней, а мне нужно, чтобы был.

Как сделать прозрачную кисть в "Paint"
На экзамен задали написать свой paint. Не удается сделать красивое рисование от руки с.

Как создать прозрачную кнопку?
1.Необходимо, чтобы кнопка принимала за фон изображение, которое находится на фоне. 2. Кнопка.

Как сделать форму невидимой
Существует одна форма, и надо чтобы от неё висел только процесс. В коде прописано событие на.

XpressMusicMan Музыка24/7

Это не совсем верно.
Так как если к примеру будет контрол с цветом "BackColor", то он тоже будет прозрачный.

Если нужно ВСЮ форму сделать прозрачной то делаем так:

И еще заметка
Лучше всего использовать светло зеленый, как фон формы
Он сильно отличается от других цветов и поэтому компьютеру легко его выделить.
Как в фильмах, все объекты к которым будет перерисовыватся комп. графика, снимаются на зеленом фоне

Как при помощи WinAPI создать прозрачные окна?

Как избавится от родительского консольного окна при создание WinAPI окна
добрый день. использую DEV-C++, но так понимаю разницы нет, какая у нас IDE. создаём просто.

Как разобрать emf-файл при помощи WinApi?
Господа, как используя функции winAPI получить информацию о полях Enhanced Metafile(данные о типе.

Как избавться от основного окна Microsoft Access при помощи VBA?
Подскажите как избавться от основного окна Microsoft Access при помощи VBA. Хотелось бы чтобы.

Копирование в буфер при помощи WinAPI
Приветствую. пытаюсь скопировать информацию с окна в буфер при помощи ф-ции WINAPI SendMessage.

63 / 58 / 13

Вот тут смотри,это стили окна.Этот стили являются параметром функции

DWORD dwStyle вот этот параметр является стилем окна. На том сайте,который я тебе дал,где имеются все стили,ищи нужный тебе,я не помню какой. если английский знаешь то найдешь. Brainsbreaker 895 / 372 / 51

Не, bretba, это не то. Вот, тоже MSDN:

Заблокирован SetWindowLong(hWnd,GWL_EXSTYLE,0x80000) Что такое 0x80000 ? Может есть какая-то константа Заблокирован 2822 / 1631 / 252

Не, bretba, это не то. Вот, тоже MSDN:

А какую роль здесь играет SetWindowLong ? Почему SetLayeredWindowAttributes без SetWindowLong - не хочет работать ? 880 / 583 / 178 Записей в блоге: 1

SetLayeredWindowAttributes() и вторая-как-её-там - работают только для окон имеющих стиль WS_EX_LAYERED .
Через SetWindowLong() помимо прочего можно устанавливать (изменять) стиль окна уже после его создания.
Но если ваше окно уже имеет стиль WS_EX_LAYERED - то SetWindowLong() вам незачем.

Добавлено через 1 минуту
Другой нюанс - если вы хотите например сбросить SetLayeredWindowAttributes() и применить вторую-как-её-там - то для этого надо убрать стиль, а затем снова его добавить.

Добавлено через 2 минуты
Не припомню точно, надо ли сбрасывать при изменении флага SetLayeredWindowAttributes() между LWA_ALPHA и LWA_COLORKEY .
Но это легко проверить на практике, и возможно даже будет быстрее чем доставать доки.

Вопрос не новый, на хэшкоде уже подымался, вот таков был ответ:

но это делает форму полностью прозрачной, а мне нужно только чтобы внутри было прозрачное, а остальное (заголовок и границы) нет.

Как такой фокус проделать?

задан 24 июл '12 в 5:33 2,621 14 14 золотых знаков 49 49 серебряных знаков 85 85 бронзовых знаков

прячет границу и заголовок окна. Уберите его, и получите прозрачное окно с заголовком и границами.

Стилем границы формы определяется способ отображения ее наружного края. Стиль границы способен также влиять на размер и доступность секции строки заголовка формы.

Задает стили границ формы. Это перечисление используется классом Form. Оно предоставляет различные стили формы. По умолчанию используется стиль Sizable.

Прозрачная панель в WinForms

Как можно задать прозрачность panel1 в WinForms? Кроме этого варианта ничего не работает в VS2015.

задан 19 янв '16 в 11:01 925 9 9 серебряных знаков 18 18 бронзовых знаков Самому нарисовать в OnPaint перебрав Parent.Controls? 19 янв '16 в 11:24 19 янв '16 в 12:11

Так можно сделать панель, да и любой другой контрол, прозрачным в любой момент времени, без переписывания OnPaint() . Ну не совсем прозрачным. просто из всей панели, для отрисовки остаются только контролы размещенные на ней. Неприкрытые контролами части панели просто не обрабатываются.

С помощью свойства Region и объектов GraphicsPath можно придать контролу WinForms любую, сколь угодно сложную форму, например криволинейный многоугольник с дырками или N независимых фрагментов работающих как один контрол.

Upd

не работает, точнее работает не так как ожидается. Контрол копирует цвет фона родительского контрола, на этом "прозрачность" и заканчивается. т.е. если у вас под такой панелью окажется другой контрол, то виден он не будет.

Я хотел бы сделать простое приложение, которое является прозрачным, но сохраняет "нормальные" границы, кнопку закрытия, минимизировать и максимизировать кнопку.

Я знаю, как сделать окно прозрачным, используя стандартный

но это удаляет границы и верхние правые кнопки. Я читаю эту нить,

какой вид дает решение, но на самом деле я просто хочу иметь возможность сохранить стандарт границы, которые были бы там, если бы я не сделал окно прозрачным. Средства, которые я могу переместить окно, изменить размер, закрыть и т. д. Возможно ли это?

автор: Community

после этого добавьте атрибут прозрачный фон в XAML и подпишитесь на событие Window_Loaded и вызовите метод MakeTransparent:

Screenshot

сначала я бы посмотрел на настройку(a)lpha в цвете rgb (a) цвета фона. Параметр alpha задает непрозрачность цвета объекта.

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

Я хочу сделать часть формы, полупрозрачные, с дополнительным текстом на той части, которая не является прозрачной.

автор: MusiGenesis

Я не думаю, что вы можете применить прозрачность (точнее говоря, прозрачность) только часть формы, а не полная, целая форма.

вы можете, однако, создать пользовательскую форму (т. е. не прямоугольную) довольно легко, при этом различные части этой формы прозрачны. В зависимости от точного "взгляда", которого вы пытаетесь достичь, это может быть ближе всего к вам.

взгляните на эти ссылки для создания собственной пользовательской формы форма:

единственной альтернативой может быть отображение двух форм, одна из которых должна быть частично прозрачной. Вам нужно будет программно убедиться, что вторая форма расположена непосредственно рядом с" основной " формой и перемещается / изменяется пропорционально, когда пользователь перемещает / изменяет размер "основной" формы. Хотя это две формы, это может быть сделано, чтобы посмотреть, пользователю, что это на самом деле только одна форма, хотя это может быть довольно сложно снять, и не будет идеальным решением (но может быть "достаточно хорошо" в зависимости от ваших точных потребностей).

автор: CraigTP

вы можете сделать это, создав полностью прозрачное окно в своей форме, а затем плавающую полупрозрачную форму над полностью прозрачным окном.

во-первых, установите TransparencyKey вашей основной формы в цвет.Красный, затем поместите панель с именем panel1 на форме и установите его BackColor в красный цвет. Это позволит создать полностью прозрачное окно"". Создайте ссылку на форму на уровне формы следующим образом:

затем поместите этот код в загрузку основной формы событие:

наконец, поместите этот код в событие перемещения вашей основной формы:

единственная проблема здесь заключается в том, что если пользователь нажимает в полупрозрачном "окне", вторая форма получит фокус, поэтому заголовок вашей основной формы будет серым.

Нажмите здесь для запуска примера приложения с этим полупрозрачным окном в форме.

автор: MusiGenesis

Я не уверен, что это возможно даже с WinForms без exzessessive использования вызовов p/invoke и обходных путей.

вместо этого вы можете использовать Windows Presentation Foundation (WPF), где такие эффекты почти тривиальны для реализации.

Как установить непрозрачность или прозрачность панели в WinForms?

автор: Cody Gray

да, непрозрачность может работать только на окнах верхнего уровня. Он использует аппаратную функцию видеоадаптера, которая не поддерживает дочерние окна, например панель. Единственным производным классом элемента управления верхнего уровня в Winforms является Form.

некоторые из "чистых" элементов управления Winform, те, которые делают свою собственную картину вместо того, чтобы позволить родному элементу управления Windows выполнить эту работу, поддерживают прозрачный BackColor. Панель-одна из них. Он использует трюк, он просит родителя нарисовать себя, чтобы произвести пиксели фона. Одним из побочных эффектов этого трюка является то, что перекрывающиеся элементы управления не работают, вы видите только родительские пиксели, а не перекрывающиеся элементы управления.

этот образец формы показывает его на работе:

если этого недостаточно, вам нужно рассмотреть возможность укладки форм друг на друга. такой.

Примечательно, что это ограничение снято в Windows 8. Он больше не использует функцию наложения видеоадаптера и DWM (aka Aero) больше нельзя отключить. Что делает непрозрачность/прозрачность на дочерних окнах легко реализовать. Опираясь на это, конечно, будущее-музыка на некоторое время. Windows 7 будет следующим XP:)

автор: Hans Passant автор: Abdusalam Ben Haj

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

автор: Brian Hasden

насколько я знаю, панель может иметь прозрачный цвет, вы не можете контролировать прозрачность панели. Таким образом, вы можете иметь некоторые части панели полностью прозрачные, но не 50%, чтобы что-то сказать.

чтобы использовать прозрачность, необходимо определить свойство прозрачный цвет.

Как сделать окно прозрачным в Windows, Mac OS X и Linux с помощью FLTK?

Я пишу приложение на C ++, используя FLTK 1.3.2. Вот код, который я использую, чтобы сделать главное окно прозрачным в Windows 7 или 8:

Он работает просто отлично: я помещаю этот код в функцию обратного вызова, назначаю его кнопке или пункту меню и, щелкая по нему, переключает прозрачность окна. Однако я бы хотел, чтобы это было кроссплатформенным, но не имею опыта работы с API OS X или Linux. Что я должен сделать, чтобы соответствовать эффекту кода Windows?

Редактировать: Я получил его для работы в OS X. Основной файл вызывает эту функцию:

Тогда я создал мой-какао-wrappers.h:

А также my-cocoa-wrappers.mm:

Makefile уже позаботился о компиляции my-cocoa-wrappers.mm как Objective-C вместо C ++.

Изменить 2: И вот решение для Linux Санель Зукан который зависит только от X11, а не от GTK +, как я и ожидал:

Решение

Вот решение для Mac OS X. Основной файл вызывает эту функцию:

Тогда я создал мой-какао-wrappers.h:

А также my-cocoa-wrappers.mm:

Makefile уже позаботился о компиляции my-cocoa-wrappers.mm как Objective-C вместо C ++.

И вот решение для Linux Санель Зукан который зависит только от X11, а не от GTK +, как я и ожидал:

Читайте также: