powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Закруглённые кнопки (rounded command buttons) ...
13 сообщений из 13, страница 1 из 1
Закруглённые кнопки (rounded command buttons) ...
    #36575294
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток.

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

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

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

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

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

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
Закруглённые кнопки (rounded command buttons) ...
    #36577633
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то пользовался ООП программой (к сожалению нет возможности сбросить инстал/т.к. инстал более 100кб) для создания нестандартных форм объетов (конечно, предварительно переводил в РВ), всё работало ( насколько фантазии хватало).
Ваш вопрос решаем с использованием "регионов АРI".

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

Код: 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
Закруглённые кнопки (rounded command buttons) ...
    #36577805
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry..,
А чем эта хрень отличается от простого овала?
...
Рейтинг: 0 / 0
Закруглённые кнопки (rounded command buttons) ...
    #36577821
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RiskaDmitry..,
А чем эта хрень отличается от простого овала?
Тем, что это прямоугольник с закругленными краями
...
Рейтинг: 0 / 0
Закруглённые кнопки (rounded command buttons) ...
    #36577836
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк,
Да хоть круг с закругленными краями! В чем принчипиальная разница?
...
Рейтинг: 0 / 0
Закруглённые кнопки (rounded command buttons) ...
    #36577867
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
;-)
И еще, ведет себя как кнопка, а не как рисунок на окне у которого нет событий.

ЗЫ: с +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
Закруглённые кнопки (rounded command buttons) ...
    #36583092
Фотография voronk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо друзья вроде получилось, но как-то ... вообшем ешё немного покручу ...
...
Рейтинг: 0 / 0
Закруглённые кнопки (rounded command buttons) ...
    #36583341
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voronkспасибо друзья вроде получилось, но как-то ... вообшем ешё немного покручу ...
Это Вам поможет "покрутить" .
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Закруглённые кнопки (rounded command buttons) ...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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