Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


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

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


Попытаюсь примерами "подогреть" интерес к NSIS System Plug-in и в частности к функции CreateWindowEx .

Пример 1 : Создаём на странице окно и помещаем в это окно WebBrowser :
(можно просматривать страницы, как в интернете, так и локально обычные htm html )

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

Page custom fnc_Create
;!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

Name "test2_CreateWindowEx"
Caption "test2 CreateWindowEx"
OutFile "test2_CreateWindowEx.exe"

Var dlg

Function fnc_Create
nsDialogs::Create 1018
Pop $dlg
	
System::Call `*(i,i,i,i)i(1,34,200,100).R0`
System::Call `user32::MapDialogRect(i$HWNDPARENT,iR0)`
System::Call `*$R0(i.s,i.s,i.s,i.s)`
System::Free $R0
FindWindow $R0 "#32770" "" $HWNDPARENT
System::Call `user32::CreateWindowEx(i,t"STATIC",in,i${DEFAULT_STYLES}|${SS_GRAYFRAME},i1,i1,i400,i200,iR0,i1100,in,in)i.R0`

WebCtrl::ShowWebInCtrl $R0 "http://www.google.ru"
;или
;WebCtrl::ShowWebInCtrl $R0 "$EXEDIR\index.htm"

nsDialogs::Show
FunctionEnd

Section
SectionEnd
Коротко, что для чего :
Функция CreateWindowEx создает разнообразные окна с расширенным стилем для разнообразных объектов.
"STATIC" - (статический элемент) Обозначает простое текстовое поле, окно или прямоугольник, используемый для надписей, окно или другие отдельные органы управления.
Координаты и размеры окна в данном примере, меняются в значениях - i1,i1,i400,i200
Стиль прямоугольника окна можно изменять (в примере это ${SS_GRAYFRAME} Наглядно видно что происходит, если менять например, на SS.BLACKRECT , SS_GRAYRECT и т.д. , не подгружая WebCtrl ),
Можно задавать тип объекта (создать кнопку, чекбокс, тултип, картинку, область текста и др.. )

Функция MapDialogRect конвертирует (преобразует) заданные единицы измерения диалогового окна - в экранные единицы (пиксели).

Команда WebCtrl:: работает со специальной DLL (это модернизированный nsWeb плагин )

Последний раз редактировалось MKN, 27-05-2020 в 16:17.


Отправлено: 10:36, 19-01-2013 | #83