【已解决】怎么使鼠标移动到标签控件时改变标签控件的样式
本帖最后由 虎虎虎 于 2012-9-20 21:54 编辑怎么使鼠标移动到标签控件时改变标签控件的样式
比如到鼠标移动到标签控件时字体变色并显示下划线,类似于超链接的效果,应该怎么实现?
如图效果:
_WinAPI_GetCursorInfo
_WinAPI_LoadCursor
_WinAPI_SetCursor
这三个UDF可能可以帮助你实现你要的功能,你去看看他们的例子。 #include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include 'GUICtrlSetOnHover_UDF.au3'
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 307, 194)
$Label1 = GUICtrlCreateLabel("测试文本", 100, 60, 80, 20)
GUICtrlSetOnHover(-1, "_hover", "Leave_Hover_Func")
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Label1
MsgBox(0, "test", "你点击了测试文本。")
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _hover($ctrlid)
If $ctrlid = $Label1 Then
GUICtrlSetCursor($Label1, 0)
GUICtrlSetColor($Label1, 0x0000ff)
GUICtrlSetFont($Label1, 15, Default, 6)
EndIf
EndFunc ;==>_hover
Func Leave_Hover_Func($ctrlid)
If $ctrlid = $Label1 Then
GUICtrlSetColor($Label1, 0x000000)
GUICtrlSetFont($Label1, 11)
EndIf
EndFunc ;==>Leave_Hover_Func'GUICtrlSetOnHover_UDF.au3'见附件 谢谢楼上,感觉不是太完美。 回复 3# pcbar
这个用定时器的方法可以看做“多线程”?
我用了下这个UDF,下面这个例子里,鼠标在靠近label下边界的时候,label会闪个不停,不知是何原因?
能否帮忙瞧一眼?
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include "GUICtrlSetOnHover_UDF.au3"
Opt("GUIOnEventMode", 1)
Local Const $iWidth = 230, $iHeight = 45
Local $hGUI
$hGUI = GUICreate("", $iWidth, $iHeight, -1, -1, BitOR($WS_BORDER, $WS_POPUP), BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
GUISetBkColor(0x19619C)
$BtnClose = GUICtrlCreateLabel("×", $iWidth - 16, 1, 12, 12)
GUICtrlSetFont(-1, 11, 400, 0, "Arial")
GUICtrlSetColor(-1, 0xE8E8E8)
GUICtrlSetTip(-1, "Close")
GUICtrlSetOnEvent(-1, "_Exit")
GUICtrlSetOnHover(-1, "_Hover", "_Leave_Hover")
GUISetState()
While 1
Sleep(100)
WEnd
Func _Hover($ctrlId)
If $ctrlId = $BtnClose Then
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetPos($BtnClose, $iWidth - 16, 0)
EndIf
EndFunc
Func _Leave_Hover($ctrlId)
If $ctrlId = $BtnClose Then
GUICtrlSetColor(-1, 0xE8E8E8)
GUICtrlSetPos($BtnClose, $iWidth - 16, 1)
EndIf
EndFunc
Func _Exit()
Exit
EndFunc
页:
[1]