tcpuuu 发表于 2012-8-22 17:00:40

滑鼠指向控件 便 出現 提示訊息 該如何?

滑鼠指向控件 便 出現 提示訊息該如何?
滑鼠離開 訊息也就 消失

xiehuahere 发表于 2012-8-22 17:32:08

本帖最后由 xiehuahere 于 2012-8-22 17:41 编辑

回复 1# tcpuuu


1)如果是你自己做的GUI界面:
GUIGetCursorInfo,返回的$array 就是 鼠标下面的控件的控件ID (0 为没有或者无法获取),判断一下,然后用 ToolTip 函数显示信息
论坛搜索一下就出来的:搜索“鼠标悬停”

2)如果是外部程序的GUI界面:
用UDF_Hover检测鼠标是否移到了指定控件上
UDF在 这里。

tcpuuu 发表于 2012-8-22 17:42:22

GUICreate("EXCEL",600,100,-1,-1)

local $EO=6,$KU=2,$KI=56,$KO=17
local $SL
For $i = 0 To 9
$SL[$i] = GUICtrlCreateLabel("",$EO,$KU,$KI,$KO,0x01)
$EO+=57
GUICtrlSetBkColor($SL[$i],0xFFFFFF)
Next
;=============================================================================
GUISetState(@SW_SHOW)
      Local $nMsg
      While 1
      $nMsg = GUIGetMsg()
         Switch $nMsg
                  Case -3
                      Exit               
            EndSwitch
;指向 $SL 出現"我是SL"
;指向 $SL 出現"我是SL"
      WEnd

=============================
怎麼用可以編個 例子 嗎?

xiehuahere 发表于 2012-8-22 18:05:12

本帖最后由 xiehuahere 于 2012-8-22 18:06 编辑

回复 3# tcpuuu


$hGUI = GUICreate("EXCEL", 600, 100, -1, -1)

local $EO=6,$KU=2,$KI=56,$KO=17
local $SL
For $i = 0 To 9
        $SL[$i] = GUICtrlCreateLabel("",$EO,$KU,$KI,$KO,0x01)
        $EO+=57
        GUICtrlSetBkColor($SL[$i],0xFFFFFF)
Next
;=============================================================================
GUISetState(@SW_SHOW)
Local $nMsg

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit               
        EndSwitch
       
        Local $info = GUIGetCursorInfo()
        Local $ctrlId = $info, $isOnCtrl = False
        ;ConsoleWrite($ctrlId & @CRLF)
        For $i = 0 To 9
                If $ctrlId = $SL[$i] Then
                        $isOnCtrl = True                       
                        ToolTip("我是SL[" & $i & "]")
                        ExitLoop
                EndIf
        Next
        If Not $isOnCtrl Then ToolTip("")
WEnd

komaau3 发表于 2012-8-22 20:30:06

简单的问题复杂化GUICtrlSetTip($lable1, '这是一段提示信息')

xiehuahere 发表于 2012-8-22 20:36:41

本帖最后由 xiehuahere 于 2012-8-22 20:38 编辑

回复 5# komaau3

{:face (340):}

嗯。。。这就是所谓的差距,中级选手与高级选手的差距!
中级选手就是能把东西做出来,而高级选手能够找到最优方案。

tcpuuu 发表于 2012-8-22 20:57:19

這個看來 是 簡單一個 GUICtrlSetTip 就可
謝謝你們解答
----------------------------------
For $i = 0 To 9
$SL[$i] = GUICtrlCreateLabel("",$EO,$KU,$KI,$KO,0x01)
$EO+=57
GUICtrlSetBkColor($SL[$i],0xFFFFFF)

GUICtrlSetTip($i+3,'SL'& $i)

Next
===============
奇怪是 怎從 3 開始   多了1個 +3 才變成 從 0開始?

komaau3 发表于 2012-8-22 21:53:45

回复 6# xiehuahere

啊啊   我只是来打酱油的

user3000 发表于 2012-8-22 22:26:05

回复 7# tcpuuu


    3   :   自己的 GUI 里的控件的ID都是从3开始, 你的GUI一开始就只创建了一系列的LABEL ....

skywn 发表于 2012-8-22 22:30:32

来学习一下

xiehuahere 发表于 2012-8-22 22:46:10

本帖最后由 xiehuahere 于 2012-8-22 22:47 编辑

回复 7# tcpuuu


直接用
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetTip(-1,'SL'& $i)
即可。
-1 就表示使用之前刚刚创建的控件ID
页: [1]
查看完整版本: 滑鼠指向控件 便 出現 提示訊息 該如何?