Имя пользователя:
Пароль:
 

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


Сообщения: 2398
Благодарности: 571

Профиль | Отправить PM | Цитировать


Создаём прямоугольную область со скругленными углами (закругляем углы окна) с помощью функции CreateRoundRectRgn :
(можно вообще сделать окно страницы в виде эллипса или круга...)

Код: Выделить весь код
!include MUI2.nsh

Page custom page1
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

OutFile "CreateRoundRectRgn.exe"
Var dlg
 
 Function page1
nsDialogs::Create 1018
Pop $dlg
System::Call "*(i, i, i, i)i.r0"; создать новую структуру 
System::Call "User32::GetClientRect(i$HWNDPARENT, ir0)"; Получить новые координаты структуры - в $0 
System::Call "*$0(i, i, i.r1, i.r2)"
 ;Функция GetClientRect извлекает координаты рабочей области окна. Рабочие координаты определяют левый верхний 
 ;и нижний правый углы рабочей области. Поскольку рабочие координаты определены относительно левого верхнего угла 
 ;рабочей области окна, координаты левого верхнего угла - (0,0).
System::Free $0, освободить оперативную память 
IntOp $1 $1 + 5 
IntOp $2 $2 + 30 
 ;Отрегулируйте значения координат в CreateRoundRectRgn, как Вам надо
System::Call "Gdi32::CreateRoundRectRgn(i0,i0,ir1,ir2,i30,i40)i.r0"
System::Call "User32::SetWindowRgn(i$HWNDPARENT, ir0, i1)"
/*
int nLeftRect , // x -координата верхнего левого угла области 
int nTopRect , // y -координата верхнего левого угла области 
   
int nRightRect , // x -координата нижнего правого угла области 
int nBottomRect , // y -координата нижнего правого угла области 
    
int nWidthEllipse , // ширина эллипса для закругленных углов 
int nHeightEllipse  // высота эллипса для закругленных углов 

Параметры 
nLeftRect - определяет x -координату верхнего левого угла области. 
nTopRect - определяет y - координату верхнего левого угла области. 
nRightRect - определяет x -координату нижнего правого угла области. 
nBottomRect - определяет y -координату нижнего правого угла области. 
nWidthEllipse - определяет ширину эллипса, используемого для создания закругленных углов. 
nHeightEllipse - определяет высоту эллипса, используемого для создания закругленных углов. 
*/
nsDialogs::Show
FunctionEnd

Section
SectionEnd
Интересно, можно ли закруглить углы окнам, созданным с помощью CreateWindowEx ?

Последний раз редактировалось MKN, 31-01-2013 в 10:42.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:17, 30-01-2013 | #157