Function Reference

首页  后退  前进

GUICtrlCreateGraphic

 

创建图形(Graphic)控件.

 

GUICtrlCreateGraphic ( left, top [, width [, height [, style]]] )

参数

left

控件左侧的位置. 若此值为 -1, 则根据 GUICoordMode() 的设置计算左侧位置.

top

控件上方的位置. 若此值为 -1, 则根据 GUICoordMode() 的设置计算顶部位置.

width

[可选] 控件的宽度(默认使用先前的宽度).

height

[可选] 控件的高度(默认使用先前的高度).

style

[可选] 控件的样式. 查看附录 GUI 控件样式表.

默认样式 ( -1) : $SS_NOTIFY.

返回值

成功:

返回控件标识符(控件ID).

失败:

返回 0.

备注

要在控件中绘图,请参考 GUICtrlSetGraphic.

 

设置边框与背景颜色分别使用 GUICtrlSetBkColor()GUICtrlSetColor() 函数.

 

绘图控件可以接受点击事件,因此不应与其它控件重叠.

如果需要重叠, 则需要禁用图形控件: GUICtrlSetState(-1,$GUI_DISABLE).

 

图形控件使用相对定址固定, 因此不能调整大小, 除非使用 GUICtrlSetResizing() 函数.

相关

GUICoordMode (Option), GUICtrlDelete, GUICtrlSetBkColor, GUICtrlSetColor, GUICtrlSetGraphic, GUICtrlSetResizing, GUICtrlSetStyle, GUIGetMsg

函数示例

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <StaticConstants.au3>
Global Const $g_MAXGr = 6
Global $g_a_idArray[$g_MAXGr + 1] ; 0 and $g_MAXGr entries not used to allow GUICtrlDelete result
Global $g_idDel
Example()
Func Example()
    Local $idMsg, $iInc, $i
    CreateChild()
    $i = 1
    $iInc = 1
    ; Loop until the user exits.
    Do
        $idMsg = GUIGetMsg()
        If $idMsg = $g_idDel Then
            GUICtrlDelete($g_a_idArray[$i])
            $i = $i + $iInc
            If $i < 0 Or $i > $g_MAXGr Then Exit
        EndIf
        If $idMsg > 0 Then MsgBox($MB_SYSTEMMODAL, "clicked", $idMsg & @CRLF & $g_a_idArray[5], 2)
    Until $idMsg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example
Func CreateChild()
    GUICreate("My Draw")
    $g_idDel = GUICtrlCreateButton("Delete", 50, 165, 50)
    $g_a_idArray[1] = GUICtrlCreateGraphic(20, 50, 100, 100)
    GUICtrlSetBkColor(-1, 0xffffff)
    GUICtrlSetColor(-1, 0)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff0000, 0xff0000)
    GUICtrlSetGraphic(-1, $GUI_GR_PIE, 50, 50, 40, 30, 270)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x00ff00, 0xffffff)
    GUICtrlSetGraphic(-1, $GUI_GR_PIE, 58, 50, 40, -60, 90)
    GUICtrlSetGraphic(-1, $GUI_GR_ELLIPSE, 100, 100, 50, 80)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x00ff00, 0xc0c0ff)
    GUICtrlSetGraphic(-1, $GUI_GR_RECT, 350, 200, 50, 80)
    GUICtrlCreateLabel("label", 65, 100, 30)
    GUICtrlSetColor(-1, 0xff)
    $g_a_idArray[2] = GUICtrlCreateGraphic(220, 50, 100, 100)
    GUICtrlSetStyle(-1, $SS_NOTIFY)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0, 0xff)
    GUICtrlSetGraphic(-1, $GUI_GR_PIE, 50, 50, 40, 30, 270)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x00ff00, 0xffffff)
    GUICtrlSetGraphic(-1, $GUI_GR_PIE, 58, 50, 40, -60, 90)
    $g_a_idArray[3] = GUICtrlCreateGraphic(220, 150, 100, 100, 0)
    GUICtrlSetBkColor(-1, 0xf08080)
    GUICtrlSetColor(-1, 0xff)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff00)
    GUICtrlSetGraphic(-1, $GUI_GR_RECT, 50, 50, 80, 80)
    $g_a_idArray[4] = GUICtrlCreateGraphic(20, 200, 80, 80)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, 0xffffff)
    GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 10, 10)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, 30, 40)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff00)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, 70, 70)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff0000)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, 10, 50)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xffff00)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, 10, 10)
    $g_a_idArray[5] = GUICtrlCreateGraphic(150, 10, 50, 50, 0)
    GUICtrlSetBkColor(-1, 0xa0ffa0)
    GUICtrlSetGraphic(-1, $GUI_GR_MOVE, 20, 20) ; start point
    ; it is better to draw line and after point
    ; to avoid to switch color at each drawing
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x0000ff)
    GUICtrlSetGraphic(-1, $GUI_GR_DOT, 30, 30)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, 20, 40)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0xff0000)
    GUICtrlSetGraphic(-1, $GUI_GR_DOT, 25, 25)
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0)
    GUICtrlSetGraphic(-1, $GUI_GR_LINE, 40, 40)
    GUICtrlSetGraphic(-1, $GUI_GR_DOT, 40, 40)
    GUISetState(@SW_SHOW)
EndFunc   ;==>CreateChild

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