Что нового

[Элементы GUI] HTMLayout. Обработка событий

YOgen

Знающий
Сообщения
58
Репутация
5
Бьюсь с htmlayout.dll (http://www.terrainformatica.com/htmlayout/HTMLayoutDLL.zip).
Никак не могу понять как обрабатывать tab-ы из примера (HTMLayoutSDK.zip - http://www.terrainformatica.com/htmlayout/HTMLayoutSDK.zip).
Т.е. отобразить то отобразил, но вот при нажатии на вкладки ничего не происходит. Получается не могу победить Event-ы.

Подскажите, пожалуйста. Очень нужен пример чтобы дальше разбираться, а то очень мощная библиотека для построения GUI произвольной формы.

Код:
#include <HTML.au3>
#include <WindowsConstants.au3>

$hGUI = GUICreate("HTML", 900,650, -1,-1, BitOR($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX, $WS_CLIPCHILDREN))
_HTML_Startup()
$hHTML = _HTML_CreateWindow($hGUI, 0,0)
_HTML_LoadFile($hHTML, @ScriptDir & "\HTML.html")
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
	EndSwitch
WEnd
 

sngr

AutoIT Гуру
Сообщения
994
Репутация
400
http://htmlayoutlab.com/htmlayout-spy/
http://terrainformatica.com/wiki/htmlayout/whatsit-r
http://rsdn.ru/forum/htmlayout/
http://www.rsdn.ru/forum/htmlayout/2240494.1
Вот ссылок на почитать, примеры работы с событиями там
<a href="http://autoit-script.ru/index.php?action=downloads;sa=downfile&id=293" />html.rar</a>. Ты бы табы отложил пока, попробуй разобраться с чем попроще, вроде кнопок.
 
Автор
YOgen

YOgen

Знающий
Сообщения
58
Репутация
5
sngr,
за ссылки спасибо - обязательно почитаю...
С кнопками как-раз то проблем нет. Их обработка проходит нормально, НО вот... там где привык что реакция есть на css (dispaly:none -> dispaly:block), в htmlayout ее нет (как минимум не получается то, что в обычном сайтостроении проходит).
 

sngr

AutoIT Гуру
Сообщения
994
Репутация
400
Смотри html_samples\csss!\pure-css-tabs.htm. Там переключение табов сделанно силами движка.
 
Автор
YOgen

YOgen

Знающий
Сообщения
58
Репутация
5
sngr
:stars: У меня непонимание идет на этапе - именно как это реализовать в Autoit. В указанном примере же не узнать этого.
Update: :-[ Затупил... в данном примере как-раз то нормально реагирует все за счет CSS. Спасибо. :IL_AutoIt_1:


В данном примере видно что изменение вида кнопок при наведении задается в CSS, а обработка события MOUSE_DOWN идет в функции "___event" и происходит за счет поиска текста, заключенного между <div></div>.

Код:
#include <Html.au3>

If(Not _Html_Startup()) Then
	Exit
EndIf

$hForm = GUICreate('', 500, 400, -1, -1)
$hHtml = _Html_CreateWindow($hForm)
_Html_LoadFile($hHtml, @ScriptDir & '\1.htm')
$pCalback = _Html_AttachEvent($hHtml, '___event')
GUISetState(@SW_SHOW, $hForm)

While 1
	Switch GUIGetMsg()
		Case -3
			ExitLoop
	EndSwitch
WEnd

Func ___event($iEvent, $lParam)
	Switch $iEvent
		Case $HTML_EVENT_MOUSE
			$aParam = _Html_GetParam($iEvent, $lParam)
			Select
				Case $aParam[0] = $MOUSE_DOWN And $aParam[6] = $MAIN_MOUSE_BUTTON
					Switch _Html_GetElementInnerText($aParam[1])
						Case 'calc'
							Run('calc.exe')
						Case 'notepad'
							Run('notepad.exe')
						Case 'cmd'
							Run('cmd.exe')
						Case 'exit'
							Exit
					EndSwitch
			EndSelect
	EndSwitch
EndFunc


Т.е. все замкнуто в рамках одного элемента: на элемент наведен курсор -> изменить внешний вид (CSS), на элемент нажатие -> поиск элемента по имени (dll/udf), реакция какая-либо (autoit).

А как сделать - при наведении на один элемент -> реакция другого ?
 
Верх