去掉窗口标题栏,以前版主发过用图片做的。
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
$Form1 = GUICreate('AU3 Good!!', 500, 400, -1, -1, $WS_POPUP)
GUISetBkColor(0x999999)
GUISetFont(11, 400, 0, 'Verdana')
$Label1 = GUICtrlCreateLabel('AU3 Good!!', 0, 0, 460, 40, $SS_CENTERIMAGE,$GUI_WS_EX_PARENTDRAG)
GUICtrlSetBkColor(-1, 0x666666)
GUICtrlSetColor(-1,0xEFEFEF )
$Label2 = GUICtrlCreateLabel('×', 460, 0, 40, 40, $SS_CENTER)
GUICtrlSetBkColor(-1, 0x666666)
GUICtrlSetColor(-1,0xEFEFEF)
GUIctrlSetFont(-1, 20, 400, 0, 'Verdana')
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Label2
Exit
EndSwitch
WEnd
回复 1# xiaochuan
不错,学习。。。
可以GUISetState(@SW_SHOW) 这句之前加一句 GUICtrlSetCursor(-1, 0)
当鼠标指向Label2的时候,指针变为手的形状。 回复 1# xiaochuan
可以添加一些鼠标移入和移出的函数,改变关闭按钮的颜色 本帖最后由 Hen5ei 于 2011-12-13 12:24 编辑
回复 1# xiaochuan #include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
Global $jishu = 0
$Form1 = GUICreate('AU3 Good!!', 500, 400, -1, -1, $WS_POPUP)
GUISetBkColor(0x999999)
GUISetFont(11, 400, 0, 'Verdana')
$Label1 = GUICtrlCreateLabel('AU3 Good!!', 0, 0, 460, 40, $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetBkColor(-1, 0x666666)
GUICtrlSetColor(-1, 0xEFEFEF)
$Label2 = GUICtrlCreateLabel('×', 460, 0, 40, 40, $SS_CENTER)
GUICtrlSetBkColor(-1, 0x666666)
GUICtrlSetColor(-1, 0xEFEFEF)
GUICtrlSetFont(-1, 20, 400, 0, 'Verdana')
GUISetState(@SW_SHOW)
While 1
If $jishu = 0 Then
If _Hover($Form1, 460, 0, 40, 40) = 1 Then
GUICtrlSetColor($Label2, 0x00FF00)
$jishu = 1
EndIf
Else
If _Hover($Form1, 460, 0, 40, 40) = 0 Then
GUICtrlSetColor($Label2, 0xEFEFEF)
$jishu = 0
EndIf
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Label2
Exit
EndSwitch
WEnd
#cs ____________________________________
; AutoIt 版本: 3.2.11.10 (第一版)
函数名: _Hover()
作用: 检测鼠标是否位于指定窗口的控件上
用法: _Hover(窗口句柄,控件相对窗口 X 坐标(左侧), 控件相对窗口 Y 坐标(上方) , 控件宽度 , 控件高度)
窗口句柄设置为""表示使用“当前”窗口。
返回值: 1 表示鼠标位于指定窗口的控件上。
0 表示鼠标没有在指定窗口的控件上。
@error = 10086 获取所指定窗口鼠标信息失败(指定窗口不存在)。
作 者: 漠北雪~狼
#ce ____________________________________
Func _Hover($cH_hWin = "", $Pos_X = 0, $Pos_Y = 0, $Pos_W = 0, $Pos_H = 0)
$cH_Data = GUIGetCursorInfo($cH_hWin)
If Not IsArray($cH_Data) Then Return SetError(10086)
If $cH_Data > $Pos_X And $cH_Data < $Pos_X + $Pos_W And $cH_Data > $Pos_Y And $cH_Data < $Pos_Y + $Pos_H Then
Return 1
Else
Return 0
EndIf
EndFunc ;==>_Hover
多谢Hen5ei
又学了一个函数{:face (301):} 多谢xiehuahere
再加上手势就好看了,{:face (301):} 学习......................... 回复 4# Hen5ei
鼠标移动到 Label2 上时,画个包围Label2的矩形框。
这个怎么做? 哈哈,太好了。谢谢,一直就是找这个。{:face (356):} 本帖最后由 lixiaolong 于 2011-12-13 20:54 编辑
回复 4# Hen5ei
我也来一个.
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <WinAPI.au3>
Local $obj_orig
$Form1 = GUICreate('AU3 Good!!', 500, 400, -1, -1, $WS_POPUP)
GUISetBkColor(0x999999)
$Label1 = GUICtrlCreateLabel('AU3 Good!!', 0, 0, 460, 40, $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetBkColor(-1, 0x666666)
GUICtrlSetColor(-1, 0xEFEFEF)
GUICtrlSetFont(-1, 20, 400, 0, 'Verdana')
GUICtrlCreateLabel('', 460, 0, 40, 40)
GUICtrlSetBkColor(-1, 0x666666)
GUISetState(@SW_SHOW)
$hDC = _WinAPI_GetWindowDC($Form1)
While 1
_WinAPI_DrawLine($hDC, 465, 5, 490, 30)
_WinAPI_DrawLine($hDC, 465, 30, 490, 5)
$cH_Data = GUIGetCursorInfo($Form1)
If $cH_Data > 460 And $cH_Data < 499 And $cH_Data > 0 And $cH_Data < 40 Then
$hPen = _WinAPI_CreatePen($PS_SOLID, 2, 0xFF0)
$obj_orig = _WinAPI_SelectObject($hDC, $hPen)
If $cH_Data Then
_WinAPI_SelectObject($hDC, $obj_orig)
_WinAPI_DeleteObject($hPen)
_WinAPI_ReleaseDC(0, $hDC)
Exit
EndIf
Else
$hPen = _WinAPI_CreatePen($PS_SOLID, 2, 0xffffff)
$obj_orig = _WinAPI_SelectObject($hDC, $hPen)
EndIf
Sleep(10)
WEnd 不错啊,学习了 很有创意,用最简单的方法实现了一个很不错的一个功能。。。嘿嘿,收下了。。。 路过 学习一下。 好厉害。。。又学习了! 不错啊,学习了