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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Элемент Label в качестве кнопки

Ответить
Настройки темы
Элемент Label в качестве кнопки

Аватара для FlatX007

Ветеран


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

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


Как назначить элемент Label в качестве кнопки и чтобы при наведении курсора надпись стала подчёркнутой?

Отправлено: 08:48, 19-09-2009

 

Пользователь


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

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


GUIGetCursorInfo тебе в помощь.
Отловишь положение курсора в нужной области, поменяешь шрифт ф-ей GUICtrlSetFont, а при нажатой кнопке мыши выполнишь нужное действие...

-------
Информация для размышления
Такому в вузах не научат


Отправлено: 19:53, 19-09-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


FlatX007,
Можно через
GUIGetCursorInfo
Код: Выделить весь код
#include <GuiConstants.au3>

Global $fLabelMouseOver

$hGui = GUICreate("Test GUIGetCursorInfo", 320, 240)

$CtrlID_Label  = GUICtrlCreateLabel("LabelText",20, 20)
GUICtrlSetFont(-1, 10, Default, 0)

GUISetState()

While 1
    $msg = GUIGetMsg()
    $aCursorInfo = GUIGetCursorInfo($hGui)
    If Not @error Then
        If $aCursorInfo[4] = $CtrlID_Label Then
            If Not $fLabelMouseOver Then
                GUICtrlSetFont($CtrlID_Label, 10, Default, 4)
                $fLabelMouseOver = True
            EndIf
        ElseIf $fLabelMouseOver Then
            GUICtrlSetFont($CtrlID_Label, 10, Default, 0)
            $fLabelMouseOver = False
        EndIf
    EndIf
    Switch $msg
    Case $CtrlID_Label
        ;-----------        
    Case $GUI_EVENT_CLOSE
        Exit
    EndSwitch
WEnd
или
WM_SETCURSOR

Код: Выделить весь код
#include <GuiConstants.au3>
#include <WindowsConstants.au3>

Global $fLabelMouseOver

$hGui = GUICreate("Test WM_SETCURSOR", 320, 240)

$CtrlID_Label = GUICtrlCreateLabel("LabelText", 20, 20)
GUICtrlSetFont(-1, 10, Default, 0)
$hLabel = GUICtrlGetHandle(-1)
GUIRegisterMsg($WM_SETCURSOR, "WM_SETCURSOR")
GUISetState()

While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $CtrlID_Label
        ;-----------    
    Case $GUI_EVENT_CLOSE
        Exit
    EndSwitch
WEnd

Func WM_SETCURSOR($HWnd, $MsgID, $wParam, $lParam)
    Local $iHitTest = BitAND($lParam, 0xFFFF) ;LoWord
    Local $iMouseEvent = BitShift($lParam, 16) ;HiWord
    If $wParam = $hLabel Then
        If Not $fLabelMouseOver Then
            GUICtrlSetFont($CtrlID_Label, 10, Default, 4)
            $fLabelMouseOver = True
        EndIf
    ElseIf $fLabelMouseOver Then
        GUICtrlSetFont($CtrlID_Label, 10, Default, 0)
        $fLabelMouseOver = False
    EndIf
    Return $GUI_RUNDEFMSG
EndFunc


P.S. Возможно, есть и другие способы.

-------
Создатель знает, что достиг совершенства не когда нечего добавить, а когда нечего убрать. - Антуан де Сент-Экзюпери


Отправлено: 04:50, 20-09-2009 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Элемент Label в качестве кнопки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Movie Label 2010 5.1.4 OSZone Software Новости программного обеспечения 0 17-11-2009 17:30
Java - Элемент массива ManHack Программирование и базы данных 2 23-10-2009 10:41
Debian/Ubuntu - Неправильно работает Numpad: кнопки '+50,' работают как кнопки мыши Viktorr Общий по Linux 0 29-04-2009 20:40
[решено] Элемент EDIT morgan1991 AutoIt 4 17-03-2009 23:52
Разное - удаление папки- элемент не найден rustam1107 Microsoft Windows Vista 3 04-03-2008 11:34




 
Переход