purebasic.info

PureBasic forum
Текущее время: Пн авг 20, 2018 2:36 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: WINAPI SKIN ОКНА РАБОТА С РЕГИОНАМИ
СообщениеДобавлено: Чт фев 20, 2014 9:38 pm 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Вт апр 26, 2011 10:23 pm
Сообщений: 44
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Изображение

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
OpenWindow(0, 0, 0, 375, 297, "СКИН", #PB_Window_BorderLess | #PB_Window_ScreenCentered);СОЗДАЁМ ОКНО
hRgn  = CreateRectRgn_(0,0,375,297);СОЗДАЁМ РЕГИОН РАЗМЕРОМ ТАКИМ ЖЕ КАК ОКНО
UsePNGImageDecoder();ПОДДЕРЖКА PNG
LoadImage(0,"Catwoman.png");ЗАГРУЖАЕМ ИЗОБРАЖЕНИЕ
;МОЖНО PNG С ФОНОМ ЗАЛИТЫМ ЦВЕТОМ КОТОРЫЙ БУДЕМ ВЫРЕЗАТЬ МОЖНО BMP 24 РАЗРЯДНЫЙ ХОТЯ LoadImage БЕЗ ФЛАГОВ
;ВОСПРИНИМАЕТ ЛЮБОЕ ИЗОБРАЖЕНИЕ КАК 24 РАЗРЯДНОЕ
;"JPG НЕ ИСПОЛЬЗОВАТЬ ИБО КРИВО ОТОБРАЗИТЬ МОЖЕТ"
SetWinBackgroundImage(WindowID(0), ImageID(0) );ЭТА ФУНКЦИЯ ИЗ БИБЛИОТЕКИ SkinWin
;ДЛЯ НАГЛЯДНОСТИ НАТЯНУЛ КАРТИНКУ НА ОКНО ВСЁ ЭТО С ПОМОЩЬЮ WINAPI МОЖНО СДЕЛАТЬ
 
StartDrawing(ImageOutput(0));ТУТ МЫ РИСОВАТЬ НИЧЕГО НЕ БУДЕМ А ПРОСТО ПОЛУЧИМ ИНФОРМАЦИЮ О ЦВЕТЕ ПИКСЕЛЕЙ
For x = 0 To 374; 374 ПОТОМУ ЧТО ОСОБЕННОСТИ ЯЗЫКА ПРОГРАММИРОВАНИЯ =)
  For y = 0 To 296;296 ПОТОМУ ЧТО ОСОБЕННОСТИ ЯЗЫКА ПРОГРАММИРОВАНИЯ =)
    iColour = Point(x,y);ПОЛУЧАЕМ ЦВЕТ ПИКСЕЛЯ
    If iColour = RGB(255,255,255);ЕСЛИ ПИКСЕЛЬ РАВЕН ЦВЕТУ КОТОРЫЙ МОЖНО ВЫБРАТЬ САМОМУ У МЕНЯ ЭТО БЕЛЫЙ
       HRGN1 = CreateRectRgn_(X,Y,X+1,Y+1);СОЗДАЁМ РЕГИОН ДЛЯ ЭТОГО ПИКСЕЛЯ
       CombineRgn_(hRgn, hRgn,HRGN1, #RGN_XOR);И ВЫРЕЗАЕМ ЕГО ИЗ ОСНОВНОГО РЕГИОНА hRgn
       DeleteObject_(hRgn1);УДАЛЯЕМ ВРЕМЕННЫЙ РЕГИОН
    EndIf;
  Next y;
Next x;
StopDrawing();
 
SetWindowRgn_(WindowID(0),hRgn,#False); ТУТ ГОВОРИМ НАШЕМУ ОКНУ КАК ОНО ДОЛЖНО ВЫГЛЯДЕТЬ )))
 
Repeat
  EVENT = WaitWindowEvent()
  Select event
    Case #PB_Event_CloseWindow  
      QUIT = 1
     
  EndSelect
Until QUIT = 1


МОЖЕТ КОМУ ПРИГОДИТСЯ =)


Вложения:
Комментарий к файлу: фАЙЛ ИСПОЛЬЗОВАННЫЙ В ПРИМЕРЕ
1.PNG [86.53 KiB]
Скачиваний: 0

_________________
Изображение
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: WINAPI SKIN ОКНА РАБОТА С РЕГИОНАМИ
СообщениеДобавлено: Чт фев 20, 2014 9:55 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6357
Благодарил (а): 20 раз.
Поблагодарили: 196 раз.
Пункты репутации: 48
Если использовать функции из библиотеки PBOSL, то почему сразу не использовать SkinWin? Было бы ещё проще :lol:

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: WINAPI SKIN ОКНА РАБОТА С РЕГИОНАМИ
СообщениеДобавлено: Чт фев 20, 2014 9:58 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
Ростислав, сделай хронометр и выложи в Open source :) Дизайн окна уже есть :)

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: WINAPI SKIN ОКНА РАБОТА С РЕГИОНАМИ
СообщениеДобавлено: Чт фев 20, 2014 10:45 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2284
Откуда: Russia — Belarus
Благодарил (а): 6 раз.
Поблагодарили: 72 раз.
Пункты репутации: 11
Без альфа-канала не комильфо :).

_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: WINAPI SKIN ОКНА РАБОТА С РЕГИОНАМИ
СообщениеДобавлено: Чт фев 20, 2014 11:45 pm 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Вт апр 26, 2011 10:23 pm
Сообщений: 44
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
kvitaliy писал(а):
Если использовать функции из библиотеки PBOSL, то почему сразу не использовать SkinWin? Было бы ещё проще :lol:

Код:
1
2
3
hBrush = CreatePatternBrush_(ImageID(hImage))
SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, hBrush)
InvalidateRect_(WindowID(0), #Null, #True)


просто хочется знать как это работает из нутри а библиотеку каждый может использовать :lol:
qpAHToMAS писал(а):
Без альфа-канала не комильфо :).

С удовольствием гляну пример с альфа-каналом :oops:

:lol: :lol: :lol:
http://forum.boolean.name/showthread.php?t=15611
нашёл согласен по сравнению с этим регионы ерунда :lol: :lol: :lol:

_________________
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: WINAPI SKIN ОКНА РАБОТА С РЕГИОНАМИ
СообщениеДобавлено: Пт фев 21, 2014 3:51 am 
Не в сети
профессор

Зарегистрирован: Вт мар 24, 2009 11:54 am
Сообщений: 357
Благодарил (а): 14 раз.
Поблагодарили: 18 раз.
Пункты репутации: 19
пример с альфой :wink:
http://purebasic.info/phpBB3ex/viewtopic.php?f=10&t=2918


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: WINAPI SKIN ОКНА РАБОТА С РЕГИОНАМИ
СообщениеДобавлено: Пт фев 21, 2014 4:04 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11228
Благодарил (а): 4 раз.
Поблагодарили: 425 раз.
Rostislav, "Caps Lock" не работает? На форуме нежелательно писать в таком стиле.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB