Function Reference

首页  后退  前进

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

----------------------------------------