Форум программистов, компьютерный форум, киберфорум
SFML
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
120 / 34 / 19
Регистрация: 19.03.2015
Сообщений: 90
1

Создание окна необычной формы

24.07.2015, 14:41. Показов 5009. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
За странный вопрос и безграмотную подачу не пинайте сильно, редко спрашиваю.
Подскажите пожалуйста уважаемые знатоки, можно ли и как создать окно, но не квадратной классической формы, а формы картинки допустим. Облегчу понимание так:
Имеется картинка например елка и мы хотим создать окно (sf::Style::None) её формы, а не просто засунуть прозрачную картинку в квадратное окно и получить черный квадрат на фоне. "Гуглинг" в моём исполнении не часто даёт осечку, но сегодня вся надежда на Вас!
P.S. Мог промазать темой, не знаю даже где такое узнать

Добавлено через 11 минут
Возможно я чего то не догоняю и есть возможность просто сделать background окна прозрачным?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2015, 14:41
Ответы с готовыми решениями:

Создание окон необычной формы
Мне тут надо одну красавицу удивить! В общем что-то красивое и не шибко замороченное необходимо...

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

Окно необычной формы и MSExpressionBlend
Здравствуйте. Возникла проблема, сам решить не могу, а туториалов по EB пока катастрофически...

Как забрать данные из необычной формы?
Вот такая форма: http://i.**********/hr1MeVQ.png Не получается забрать из неё данные. Вот что...

5
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
28.07.2015, 02:50 2
Если под виндой, то можно попробовать поиграть с регионами на окне, взять хенд этого окна(HWND) и потом создать
C++
1
sf::Window wnd( hWnd ) ;
но не знаю что из этого выйдет, но даже если получится, то это будет только под винду...
1
120 / 34 / 19
Регистрация: 19.03.2015
Сообщений: 90
28.07.2015, 17:57  [ТС] 3
Croessmah, Мысль использовать дискриптор окна мне приходила, реализовал таким образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <SFML/Graphics.hpp>
#include <windows.h>
using namespace ::sf; 
int main()
{
    RenderWindow window(VideoMode(500, 500), "I WANT TO TRANSPARENT",Style::None);
 
 
    SetWindowLong (window.getSystemHandle(), GWL_EXSTYLE, GetWindowLong(window.getSystemHandle(), GWL_EXSTYLE) | WS_EX_LAYERED);
    SetLayeredWindowAttributes (window.getSystemHandle(), 0, (255*10)/100, LWA_ALPHA);
//.......
}
Но все безуспешно, этим способом мы можем лишь регулировать прозрачность всего окна, это не даст нам скрыть черный квадрат 500х500 виднеющийся на фоне все той же елочки.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
28.07.2015, 18:08 4
Цитата Сообщение от idm Посмотреть сообщение
Но все безуспешно
я писал
Цитата Сообщение от Croessmah Посмотреть сообщение
то можно попробовать поиграть с регионами
MSDN: Region Functions
1
0 / 0 / 0
Регистрация: 29.10.2019
Сообщений: 3
29.10.2019, 20:00 5
Честно хз, попробуй window.clear(sf::Color(0,0,0,0));
0
0 / 0 / 0
Регистрация: 19.02.2020
Сообщений: 1
19.02.2022, 21:40 6
C++
1
2
3
4
5
    sf::RenderWindow window(sf::VideoMode(wight, height), "SFML works!" ,  sf::Style::None);
 
 
SetWindowLong (window.getSystemHandle(), GWL_EXSTYLE, GetWindowLong(window.getSystemHandle(), GWL_EXSTYLE) | WS_EX_LAYERED);
    SetLayeredWindowAttributes (window.getSystemHandle(), 0, 10 , LWA_COLORKEY);
LWA_ALPHA
поменяйте на LWA_COLORKEY и будет вам щастье

10 это прозрачность
0
19.02.2022, 21:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2022, 21:40
Помогаю со студенческими работами здесь

Как сделать кнопку необычной формы?
Всем привет! У меня такой вопрос: как сделать на сайте кнопку такой формы ? Пробовал...

Создание необычной границы
Есть изображение: Я хочу не используя javascript и background-image сделать такое же на чистом...

Создание необычной выборки SELECT
Привет форумчане, помогите глупцу =) в таблице users есть столбец formsdata в каждой ячейке для...

Создать форму необычной формы. Код есть в теме
Создал через CreatorForms Private Declare Function CreateRectRgn Lib &quot;gdi32&quot; (ByVal X1 As...

Создание формы (окна)
Здравствуйте! Кто - нибудь знает как создать окно (или по проще белый прямоугольник по центру...

Создание формы окна скрипта
var myProj = app.project; var myComp = myProj.activeItem; var myLayer = myComp.selectedLayers;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru