Что нового

Label как ссылка

Fantasy22

Новичок
Сообщения
11
Репутация
0
Здравствуйте.
Подскажите возможно сделать Label как ссылку, то есть при наведении на него курсор текст подчеркивался.
 
Автор
F

Fantasy22

Новичок
Сообщения
11
Репутация
0
После долгих поисков на форуме, нашел подходящий пример.
Есть несколько вопросов
1 Как можно избавиться от мерцания текста.
2 При выполнении команды Run выскакивает ошибка.

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

$Form1 = GUICreate("Form1", 333, 141, -1, -1, -1, $WS_EX_COMPOSITED)
$Label1 = GUICtrlCreateLabel("Программа", 112, 48, 106, 17)
GUICtrlSetFont(-1, 9, 300, 0)
GUICtrlSetCursor(-1, 0)
GUISetState()

While 1
    $Cur = GUIGetCursorInfo()
    If $Cur[4] = $Label1 Then
        GUICtrlSetColor($Label1, 0x0000FF)
        GUICtrlSetFont($Label1, 9, 300, 4)
    Else
        GUICtrlSetColor($Label1, 0x0000FF)
        GUICtrlSetFont($Label1, 9, 300, 0)
    EndIf

    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Label1
            Run(@SystemDir & "\notepad.exe")
    EndSwitch
WEnd
 
A

Alofa

Гость
Fantasy22 сказал(а):
Есть несколько вопросов

Проверьте (я не могу):
Код:
#RequireAdmin
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Local $iTrigg, $Cur, $Label1, $Form1

$Form1 = GUICreate("Form1", 333, 141, -1, -1, -1, $WS_EX_COMPOSITED)
$Label1 = GUICtrlCreateLabel("Программа", 112, 48, 106, 17)
GUICtrlSetFont(-1, 9, 300, 0)
;GUICtrlSetCursor(-1, 0)
GUISetState()

While 1
	$Cur = GUIGetCursorInfo()
	If (Not @error) And $Cur[4] = $Label1 Then
		If Not $iTrigg Then
			GUICtrlSetColor($Label1, 0x0000FF)
			GUICtrlSetFont($Label1, 9, 300, 4)
			$iTrigg = 1
		EndIf
	Else
		If $iTrigg Then
			GUICtrlSetColor($Label1, 0)
			GUICtrlSetFont($Label1, 9, 300, 0)
			$iTrigg = 0
		EndIf
	EndIf

	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Label1
			Run("notepad.exe")
	EndSwitch
WEnd
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Alofa
Код:
;~...
   $Cur = GUIGetCursorInfo()
   If Not @error Then ; при опросе функции в цикле очень полезно
	  If $Cur[4] = $Label1 Then
		 If Not $iTrigg Then
			GUICtrlSetColor($Label1, 0x0000FF)
			GUICtrlSetFont($Label1, 9, 300, 4)
			$iTrigg = 1
		 Endif
	  Else
		 If $iTrigg Then
			GUICtrlSetColor($Label1, 0)
			GUICtrlSetFont($Label1, 9, 300, 0)
			$iTrigg = 0
		 Endif
	  EndIf
   EndIf
;...
 
Автор
F

Fantasy22

Новичок
Сообщения
11
Репутация
0
Alofa
Garrett

Большое Спасибо за помощь :beer:
 
Верх