Что нового

[Элементы GUI] Привязка к изображению гиперссылки

forfrends

Новичок
Сообщения
176
Репутация
3
Всем привет!
Autoit v3.2.12.1
Я не знаю как сделать и прошу у вас совета. Мне нужно что бы на диалоговом окне отображалась картинка, к которой была бы привязанна гиперссылка. Щелкнув по ней мышкой - происходит переход по ссылке.
Вот простая прога просто с картинкой:

Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 251, 88, 227, 156)
$Icon1 = GUICtrlCreateIcon("C:\Icon.ico", -1, 96, 16, 49, 49, BitOR($SS_NOTIFY,$WS_GROUP))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
623
forfrends
чем вот эта тема - http://autoit-script.ru/index.php?topic=1587.0
а тем более решение там предложенное не понравилось?
 
Автор
F

forfrends

Новичок
Сообщения
176
Репутация
3
Хорошая тема, читал, но я не знаю как из картинки сделать кнопку нажав на которую переходиш на сайт
Мне нужен не текст-гиперссылка, а рисунок-кнопка - гиперссылка
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
forfrends
Любой элемент управления, которому присвоено имя, можно использовать в обработчике событий, в том числе и метку (LABEL), и картинку (PIC)...

Например,

Код:
...
$PIC1=GUICtrlCreatePic("mslogo.jpg", 50, 50, 200, 50)
...
While True
 Switch GUIGetMsg()
  Case $PIC1
   ExitLoop
 EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
forfrends
Так попробуйте:
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

$Form1 = GUICreate("", 100, 120, -1, -1)

$picture = GUICtrlCreatePic(@ScriptDir & "\1.JPG", 10, 10, 80, 100)
GUICtrlSetCursor(-1, 0)
GUICtrlSetTip(-1, "Здесь можно перейти на сайт Русского сообщества AutoIt" & @CRLF & "или на официальный сайт AutoIt.")
$OptionsDummy = GUICtrlCreateDummy()
$OptionsContext = GUICtrlCreateContextMenu($OptionsDummy)
GUICtrlCreateMenuItem("", $OptionsContext)
$OptionsAIR = GUICtrlCreateMenuItem("Русское сообщество AutoIt", $OptionsContext)
GUICtrlCreateMenuItem("", $OptionsContext)
$OptionsAI = GUICtrlCreateMenuItem("Официальный сайт AutoIt", $OptionsContext)
GUICtrlCreateMenuItem("", $OptionsContext)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $picture
			ShowMenu($Form1, $nMsg, $OptionsContext)
		Case $OptionsAIR
			ShellExecute("http://autoit-script.ru")
		Case $OptionsAI
			ShellExecute("http://www.autoitscript.com/")
	EndSwitch
WEnd

Func ShowMenu($hWnd, $CtrlID, $nContextID)
	Local $arPos, $x, $y
	Local $hMenu = GUICtrlGetHandle($nContextID)

	$arPos = ControlGetPos($hWnd, "", $CtrlID)

	$x = $arPos[0]
	$y = $arPos[1] + $arPos[3]
	ClientToScreen($hWnd, $x, $y)
	TrackPopupMenu($hWnd, $hMenu, $x, $y)
EndFunc   ;==>ShowMenu

Func TrackPopupMenu($hWnd, $hMenu, $x, $y)
	DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", $hMenu, "int", 0, "int", $x, "int", $y, "hwnd", $hWnd, "ptr", 0)
EndFunc   ;==>TrackPopupMenu

Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
	Local $stPoint = DllStructCreate("int;int")

	DllStructSetData($stPoint, 1, $x)
	DllStructSetData($stPoint, 2, $y)

	DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPoint))

	$x = DllStructGetData($stPoint, 1)
	$y = DllStructGetData($stPoint, 2)
	$stPoint = 0
EndFunc   ;==>ClientToScreen

Рисунок @ScriptDir & "\1.JPG" должен лежать в папке со скриптом.
 
Верх