Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Закруглённые кнопки (rounded command buttons) ... / 13 сообщений из 13, страница 1 из 1
13.04.2010, 00:27
    #36575294
voronk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
Доброго всем времени суток.

Сабж собственно ... никто не сталкивался?

Зараннее благодарен за любые наводки.

ПС
там уже был:
http://blogs.sybase.com/phoran/?p=67
http://www.sql.ru/forum/actualthread.aspx?tid=337060
...
Рейтинг: 0 / 0
13.04.2010, 09:35
    #36575534
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
voronkДоброго всем времени суток.

Сабж собственно ... никто не сталкивался?

Зараннее благодарен за любые наводки.
Вот код на Delphi. По идее без проблем должно перевестись на PB. В качестве аргумента функции передавать результат вызова handle (...) от объекта кнопки. Именно кнопки не закруглял, но аналогично делал окно с дыркой, вроде работало...
...
Рейтинг: 0 / 0
13.04.2010, 17:54
    #36577108
voronk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
Марк, большое спасибо, попробую.
...
Рейтинг: 0 / 0
13.04.2010, 18:32
    #36577216
voronk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
вот нарыл, может комрадам пригодитса:
rounded window edges and shaded colouring
а сам пока, закатал рукава
...
Рейтинг: 0 / 0
13.04.2010, 19:49
    #36577357
voronk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
Марк, я чегось забуксовал, чё не то делаю?

FUNCTION long CreateRoundRectRgn( long nLeftRect, long nTopRect, long nRightRect, long nBottomRect , long nWidthEllipse, long nHeightEllipse) LIBRARY "gdi32.dll"

ULong hWnd
Long il_newRgn

long nLeftRect // x-coordinate of upper-left corner
long nTopRect // y-coordinate of upper-left corner
long nRightRect // x-coordinate of lower-right corner
long nBottomRect // y-coordinate of lower-right corner

ULong nWidthEllipse // width of ellipse
ULong nHeightEllipse // height of ellipse

nLeftRect = UnitsToPixels(cb_login.x, XUnitsToPixels! )
nTopRect = UnitsToPixels(cb_login.y, YUnitsToPixels! )

nRightRect = nLeftRect + UnitsToPixels( cb_login.Width, XUnitsToPixels! )
nBottomRect = nTopRect + UnitsToPixels( cb_login.Height, YUnitsToPixels! )

nWidthEllipse = UnitsToPixels( cb_login.Width, XUnitsToPixels! )
nHeightEllipse = UnitsToPixels( cb_login.Height, YUnitsToPixels! )

hWnd = Handle( cb_login )

il_newRgn = CreateRoundRectRgn(nLeftRect, nTopRect, nRightRect, nBottomRect, nWidthEllipse, nHeightEllipse)

SetWindowRgn( hWnd, il_newRgn, TRUE )
...
Рейтинг: 0 / 0
14.04.2010, 00:26
    #36577633
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
Когда-то пользовался ООП программой (к сожалению нет возможности сбросить инстал/т.к. инстал более 100кб) для создания нестандартных форм объетов (конечно, предварительно переводил в РВ), всё работало ( насколько фантазии хватало).
Ваш вопрос решаем с использованием "регионов АРI".

А у меня встречный вопрос: как добавить "радиент" на кнопку?
...
Рейтинг: 0 / 0
14.04.2010, 00:26
    #36577634
Dmitry..
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
у меня все получилось

Код: plaintext
1.
2.
FUNCTION long CreateRoundRectRgn( long nLeftRect, long nTopRect, long nRightRect, long nBottomRect , long nWidthEllipse, long nHeightEllipse) LIBRARY "gdi32.dll"
FUNCTION long SetWindowRgn(LONG hWnd,LONG hRgn,long bRedraw) LIBRARY "user32.dll"

Код: plaintext
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.
ULong hWnd
Long il_newRgn

long nLeftRect // x-coordinate of upper-left corner
long nTopRect // y-coordinate of upper-left corner
long nRightRect // x-coordinate of lower-right corner
long nBottomRect // y-coordinate of lower-right corner

ULong nWidthEllipse // width of ellipse
ULong nHeightEllipse // height of ellipse

nLeftRect =  3 
nTopRect =  3 

nRightRect = UnitsToPixels( cb_login.Width, XUnitsToPixels! )- 6 
nBottomRect = UnitsToPixels( cb_login.Height, YUnitsToPixels! )- 6 

nWidthEllipse =  20 
nHeightEllipse =  20 

hWnd = Handle( cb_login )

il_newRgn = CreateRoundRectRgn(nLeftRect, nTopRect, nRightRect, nBottomRect, nWidthEllipse, nHeightEllipse)

SetWindowRgn( hWnd, il_newRgn,  1  )
...
Рейтинг: 0 / 0
14.04.2010, 09:11
    #36577805
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
Dmitry..,
А чем эта хрень отличается от простого овала?
...
Рейтинг: 0 / 0
14.04.2010, 09:20
    #36577821
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
RiskaDmitry..,
А чем эта хрень отличается от простого овала?
Тем, что это прямоугольник с закругленными краями
...
Рейтинг: 0 / 0
14.04.2010, 09:32
    #36577836
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
Локшин Марк,
Да хоть круг с закругленными краями! В чем принчипиальная разница?
...
Рейтинг: 0 / 0
14.04.2010, 09:49
    #36577867
Dmitry..
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
;-)
И еще, ведет себя как кнопка, а не как рисунок на окне у которого нет событий.

ЗЫ: с +3 и -6 это я промахнулся.
поскольку это координаты относительно кнопки а не ширина и высота,
надо просто +3 -3

И еще: все эти GDI объекты выедают память.
в хелпе написано: When you no longer need the HRGN object call the DeleteObject function to delete it.
http://msdn.microsoft.com/en-us/library/dd183516%28VS.85%29.aspx
в деструкторе кнопки надо вызвать DeleteObject(il_newRgn)
...
Рейтинг: 0 / 0
16.04.2010, 18:16
    #36583092
voronk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
спасибо друзья вроде получилось, но как-то ... вообшем ешё немного покручу ...
...
Рейтинг: 0 / 0
16.04.2010, 23:47
    #36583341
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закруглённые кнопки (rounded command buttons) ...
voronkспасибо друзья вроде получилось, но как-то ... вообшем ешё немного покручу ...
Это Вам поможет "покрутить" .
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Закруглённые кнопки (rounded command buttons) ... / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]