|
发表于 2009-12-23 23:40:25
|
显示全部楼层
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include '_dButton.au3'
$Gui = GUICreate("动态按钮he控件指示", 300, 200, -1, -1, $WS_POPUP)
$ex=GUICtrlCreateLabel(" X ", 280, 2, 17, 12)
WinSetTrans($Gui, "", 255);必须要使用此函数,即使透明值设置为255,也就是不透明都可以,但是不能没有
$btn_ok = GUICtrlCreateButton("", 100, 47, 100, 26, $BS_BITMAP )
GUICtrlSetImage(-1, "Bitmap_181.bmp")
GUICtrlSetCursor(-1, 0)
$btn_ex = GUICtrlCreateButton("", 100, 80, 32, 32, $BS_ICON)
GUICtrlSetImage(-1, "Bitmap_181.ico")
GUICtrlSetCursor(-1, 0)
$btn_tt = GUICtrlCreatePic("Bitmap_181.bmp", 100, 120, 100, 26)
GUICtrlSetCursor(-1, 0)
$Pic1 = GUICtrlCreatePic("bg.jpg", 0, 0, 300, 200, $WS_CLIPSIBLINGS)
GUICtrlCreateLabel("", 0, 0, 300, 100, $WS_CLIPSIBLINGS, $GUI_WS_EX_PARENTDRAG)
$label=GUICtrlCreateLabel("当鼠标处于本行文字上方,将进行提示", 50, 15 )
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0xff0000)
GUISetState(@SW_SHOW)
While 1
If _Mouse_top($Gui,$label)=1 Then MsgBox(0,'提示','鼠标移动到了label控件上')
If _Mouse_top($Gui,$ex)=1 Then
$mouse = MouseGetPos()
ToolTip ( "点击退出" , $mouse[0]+10 , $mouse[1]+15 )
Else
ToolTip ("")
EndIf
_dButton($Gui, $btn_ok, "Bitmap_181.bmp", "Bitmap_186.bmp", "Bitmap_187.bmp")
_dButton($Gui, $btn_ex, "Bitmap_181.ico", "Bitmap_186.ico", "Bitmap_187.ico")
_dButton($Gui, $btn_tt, "Bitmap_181.bmp", "Bitmap_186.bmp", "Bitmap_187.bmp")
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE,$ex
Exit
Case $btn_ok
MsgBox(0,'提示','BMP图片按钮被点击')
Case $btn_ex
MsgBox(0,'提示','ICO图标按钮被点击')
Case $btn_tt
MsgBox(0,'提示','图片控件被点击')
EndSwitch
wend
UDF;
;===============================================================================
;
; 函数名称: _dButton($Gui_id, $btn_ctrlid, $z_img, $j_img, $a_img)
; 描 述: 创建动态按钮
; 参 数: $Gui_id : 窗口句柄
; $btn_ctrlid - (必须): 按钮句柄
; $z_img - (可选): 按钮正常时的图片
; $j_img - (可选): 鼠标经过按钮时的图片
; $a_img - (可选): 鼠标左键点击时的图片
; 要 求: 1、AutoIt3 V3.3.0.0 汉化版 测试OK
; 2、必须要使用WinSetTrans函数,即使透明值设置为255,也就是不透明都可以,但是不能没有
; UDF 作者: 钟隐 (http://hi.baidu.com/rhc1987527)
; ACN ID: 298311657
;
;===============================================================================
;
Func _dButton($Gui_id, $btn_ctrlid, $z_img, $j_img, $a_img)
If WinActive($Gui_id) Then
$mouse = GUIGetCursorInfo($Gui_id)
If $mouse[4] = $btn_ctrlid Then
If $mouse[2] = 1 Then
GUICtrlSetImage($btn_ctrlid, $a_img)
Else
GUICtrlSetImage($btn_ctrlid, $j_img)
EndIf
Else
GUICtrlSetImage($btn_ctrlid, $z_img)
EndIf
EndIf
EndFunc ;==>_dButton
;
;===============================================================================
;
; 函数名称: _Mousetop($Gui_id,$ctrl_id)
; 描 述: 检测鼠标是否处于指定控件上方
; 参 数: $Gui_id : 窗口句柄
; $ctrl_id : 按钮句柄
; 要 求: AutoIt3 V3.3.0.0 汉化版 测试OK
;
; 返 回 值: 1 表示鼠标位于指定窗口的控件上。
; 0 表示鼠标没有在指定窗口的控件上。
;
; 示 例: If _Mouse_top($Gui,$btn_ok)=1 Then MsgBox(0,'','')
;
; UDF 作者: 钟隐 (http://hi.baidu.com/rhc1987527)
; ACN ID: 298311657
;
;===============================================================================
;
Func _Mouse_top($Gui_id, $ctrl_id)
If WinActive($Gui_id) Then
$mouse = GUIGetCursorInfo($Gui_id)
If $mouse[4] = $ctrl_id Then
Return 1
Else
Return 0
EndIf
EndIf
EndFunc ;==>_Mouse_top
完整文件打包:(包含UDF、示例源码、示例图片) |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入
×
评分
-
查看全部评分
|