如何讓鼠標移到指定Label後會有不同的動畫?
如題如果要使鼠標移到Label1後會呈現執行執行的效果需要怎麼寫?
目前想到要使用GUISetCursor()
附上源碼
GUICreate("e-Doctor",900,600); 將建立一個置中顯示的對話框
GUISetBkColor (0xFFFFFF)
GUISetIcon ("C:\Program Files\MIS_TOOL\MIS_Tool_ICO\tab_rmvbsafe.ico")
GUICtrlCreatePic("C:\Program Files\MIS_TOOL\MIS_Tool_ICO\eDoctor.jpg",0, 0, 900, 600)
GUICtrlSetState(-1,$GUI_DISABLE);將背景圖設定為非元件
$Label1= GuiCtrlCreateLabel("",59,63,144,40)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT);將Label設定透明
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Label1
ShellExecute ("C:\Program Files\MIS_TOOL\7zip.chm")
EndSwitch
WEnd
回复 1# FMP
给个汉化的外码你自己参考研究:#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
Global $assot = [ _
, _
, _
, _
, _
, _
, _
, _
, _
, _
, _
, _
, _
, _
, _
, _
, _
, _ ; 如果不改变窗口大小样式 (-1)
, _
]
Global $k = 0, $Byfer
$hGui = GUICreate("WM_SETCURSOR", 510, 140, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_HSCROLL, $WS_VSCROLL), $WS_EX_TOPMOST)
GUICtrlCreateLabel('滑动窗口鼠标光标时发送 WM_SETCURSOR 消息.', 5, 3, 400, 17)
$Button = GUICtrlCreateButton('按钮', 10, 25, 70, 25)
$Button = GUICtrlCreateButton('按钮2', 90, 25, 70, 25)
$StatusBar = GUICtrlCreateLabel('123', 5, 55, 270, 74)
GUISetState()
GUIRegisterMsg($WM_SETCURSOR, "WM_SETCURSOR")
Do
Until GUIGetMsg() = -3
Func WM_SETCURSOR($hWnd, $Msg, $wParam, $lParam)
$k += 1
$Hittest = BitAND($lParam, 0xFFFF) ; _WinAPI_LoWord 低位字
$MouseMsg = BitShift($lParam, 16) ; _WinAPI_HiWord 高位字
WinSetTitle($hGui, '', '消息发生次数: ' & $k)
$info_ID = '?'
For $i = 0 To 18
If $Hittest = $assot[$i] Then
$info_ID = $assot[$i]
ExitLoop
EndIf
Next
$Tmp = $info_ID & @LF & '句柄 = ' & $wParam & @LF & '控件 ID = ' & _WinAPI_GetDlgCtrlID($wParam) & @CRLF & '鼠标消息 = ' & $MouseMsg
If $Tmp <> $Byfer Then
GUICtrlSetData($StatusBar, $Tmp)
$Byfer = $Tmp
EndIf
Return $GUI_RUNDEFMSG
EndFunc
本帖最后由 netegg 于 2015-4-27 10:41 编辑
用不着消息这么麻烦吧
就算用,好像也是hover,和curser应该关系不大 回复 1# FMP
不太明白题目意思,是想鼠标移动到 Label1,光标变成忙碌状态? 回复 4# yhxhappy
这有什么不明白的,类似网页里悬停链接文字的时候,鼠标变化 表達的不夠好,造成誤會不好意思
就如同netegg所說的意思一樣' 回复 6# FMP
给Label1添加GUICtrlSetCursor不行吗? 回复 7# yhxhappy
添加過了沒反應.. 回复 8# FMP
是这样效果吗?我总觉得不会这么简单,不然怎么没人回复。都不敢发了#include <GUIConstantsEx.au3>
GUICreate("e-Doctor",900, 600); 將建立一個置中顯示的對話框
GUISetBkColor (0xFFFFFF)
$Label1= GuiCtrlCreateLabel("鼠标移到此处显示忙碌",59,63,144,40)
GUICtrlSetBkColor(-1, 0xff0000)
GUICtrlSetCursor(-1, 15)
;GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT);將Label設定透明
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Label1
ShellExecute ("C:\Program Files\MIS_TOOL\7zip.chm")
EndSwitch
WEnd 搜索一下,我忘了是哪个代码里有这个源码 回复FMP
是这样效果吗?我总觉得不会这么简单,不然怎么没人回复。都不敢发了
yhxhappy 发表于 2015-4-27 17:28 http://www.autoitx.com/images/common/back.gif
就是這樣的效果沒錯.....
页:
[1]