Пользователь
Сообщения: 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
|