GUICtrlCreatePic
创建图片(Picture)控件.
GUICtrlCreatePic ( filename, left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )
参数
filename
|
图片文件名称: 支持类型为 BMP, JPG, GIF(非动画效果的).
|
left
|
控件左侧的位置. 若此值为 -1, 则根据 GUICoordMode() 的设置计算左侧位置.
|
top
|
控件上方的位置. 若此值为 -1, 则根据 GUICoordMode() 的设置计算顶部位置.
|
width
|
[可选] 控件的宽度(默认使用先前的宽度).
|
height
|
[可选] 控件的高度(默认使用先前的高度).
|
style
|
[可选] 控件的样式. 查看附录 GUI 控件样式表.
默认样式 (-1) : $SS_NOTIFY
强制样式 : $SS_BITMAP
|
exStyle
|
[可选] 控件的扩展样式. 查看附录 扩展样式表.
|
返回值
成功:
|
返回控件标识符(控件ID).
|
失败:
|
返回 0, 不能创建图片.
|
备注
设置或者修改控件信息, 参考 GUICtrlUpdate...() 控件更新控件更新类函数.
请使用 GUICtrlSetImage() 显示更新后的图片.
要显示目标图片的原始大小, 则设置宽度和高度为 0.
要创建透明图片, 必须创建带有 WS_EX_LAYERED 扩展样式的窗口. 左顶像素将被作为透明色.
如果创建多个图片, 则最后一个图片定义为透明色. 参考例子 2.
要在默认样式上添加新样式, 可使用 BitOR($GUI_SS_DEFAULT_PIC, 新样式,...) 语句.
使用上面列出的值必须将 #include <StaticConstants.au3> 语句写入脚本中.
默认大小为 $GUI_DOCKSIZE.
如果图片设置为背景图片, 并与其它控件交叠时, 需先禁用图片控件: GUICtrlSetState(-1, $GUI_DISABLE).
扩展样式 $GUI_WS_EX_PARENTDRAG 用于允许拖动没有标题栏的父窗口( GUICreate() 函数创建的父窗没有$WS_CAPTION 样式).
背景总是被设置为透明. GUICtrlSetBkColor() 函数对图片控件无效.
相关
GUICoordMode (Option), GUICtrlSetImage, GUICtrlUpdate..., GUIGetMsg
函数示例
示例 1
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
GUICreate("My GUI picture", 350, 300, -1, -1, $WS_SIZEBOX + $WS_SYSMENU) ; will create a dialog box that when displayed is centered
GUISetBkColor(0xE0FFFF)
Local $idPic = GUICtrlCreatePic("..\GUI\mslogo.jpg", 50, 50, 200, 50)
GUISetState(@SW_SHOW)
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
; resize the control
GUICtrlSetPos($idPic, 50, 50, 200, 100)
Local $idMsg
; Loop until the user exits.
While 1
$idMsg = GUIGetMsg()
If $idMsg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
GUIDelete()
EndFunc ;==>Example
示例 2
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $g_hGui, $g_aGuiPos, $g_hPic, $g_aPicPos
Example()
Func Example()
$g_hGui = GUICreate("test transparentpic", 200, 100)
$g_hPic = GUICreate("", 68, 71, 10, 20, $WS_POPUp, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $g_hGui)
GUICtrlCreatePic("..\GUI\merlin.gif", 0, 0, 0, 0)
GUISetState(@SW_SHOW, $g_hPic)
GUISetState(@SW_SHOW, $g_hGui)
HotKeySet("{ESC}", "Main")
HotKeySet("{Left}", "Left")
HotKeySet("{Right}", "Right")
HotKeySet("{Down}", "Down")
HotKeySet("{Up}", "Up")
$g_aPicPos = WinGetPos($g_hPic)
$g_aGuiPos = WinGetPos($g_hGui)
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
HotKeySet("{ESC}")
HotKeySet("{Left}")
HotKeySet("{Right}")
HotKeySet("{Down}")
HotKeySet("{Up}")
EndFunc ;==>Example
Func Main()
$g_aGuiPos = WinGetPos($g_hGui)
WinMove($g_hGui, "", $g_aGuiPos[0] + 10, $g_aGuiPos[1] + 10)
EndFunc ;==>Main
Func Left()
$g_aPicPos = WinGetPos($g_hPic)
WinMove($g_hPic, "", $g_aPicPos[0] - 10, $g_aPicPos[1])
EndFunc ;==>Left
Func Right()
$g_aPicPos = WinGetPos($g_hPic)
WinMove($g_hPic, "", $g_aPicPos[0] + 10, $g_aPicPos[1])
EndFunc ;==>Right
Func Down()
$g_aPicPos = WinGetPos($g_hPic)
WinMove($g_hPic, "", $g_aPicPos[0], $g_aPicPos[1] + 10)
EndFunc ;==>Down
Func Up()
$g_aPicPos = WinGetPos($g_hPic)
WinMove($g_hPic, "", $g_aPicPos[0], $g_aPicPos[1] - 10)
EndFunc ;==>Up
----------------------------------------
|