函数参考


GUICtrlCreateObj

在GUI上面创建一个 ActiveX 控件.

GUICtrlCreateObj ( 对象变量, 左侧, 顶部 [, 宽度 [, 高度 ]] )

参数

对象变量 一个指向前面已经打开的对象(object)的变量.
左侧 控件左侧的位置.若此值为 -1 则根据 GUICoordMode 的设置来计算左侧位置.
顶部 控件上方的位置.若此值为 -1 则根据 GUICoordMode 的设置来计算上方位置.
宽度 [可选参数] 控件的宽度(默认值为上一个控件的宽度).
高度 [可选参数] 控件的高度(默认值为上一个控件的高度).

返回值

成功: 返回新控件的控件标识符(控件ID).
失败: 返回 0.

注意/说明

这个函数尝试植入一个 'ActiveX 控件' 或者 'Document Object' 到 GUI.
不是任何控件都可以植入的. 这个控件至少得支持 'IDispatch' 接口.

'Document Objects' 只能显示于 $WS_CLIPCHILDREN 样式的GUI,参考 GUICreate().

GUI 函数 GUICtrlRead 和 GUICtrlSet 不能对这个控件有任何影响. 这个对象只能调用它自身(ObjectVar)的"方法"('methods')或者属性('properties').

相关

ObjCreate, ObjGet, ObjEvent, IsObj

示例/演示


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Example()

; Simple example: Embedding an Internet Explorer Object inside an AutoIt GUI
;
; See also: http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/internetexplorer.asp
Func Example()
    Local $oIE, $GUI_Button_Back, $GUI_Button_Forward
    Local $GUI_Button_Home, $GUI_Button_Stop, $msg

    $oIE = ObjCreate("Shell.Explorer.2")

    ; Create a simple GUI for our output
    GUICreate("Embedded Web control Test", 640, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    GUICtrlCreateObj($oIE, 10, 40, 600, 360)
    $GUI_Button_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 330, 420, 100, 30)

    GUISetState() ;Show GUI

    $oIE.navigate("http://www.autoitscript.com")

    ; Waiting for user to close the window
    While 1
        $msg = GUIGetMsg()

        Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
            Case $msg = $GUI_Button_Home
                $oIE.navigate("http://www.autoitscript.com")
            Case $msg = $GUI_Button_Back
                $oIE.GoBack
            Case $msg = $GUI_Button_Forward
                $oIE.GoForward
            Case $msg = $GUI_Button_Stop
                $oIE.Stop
        EndSelect

    WEnd

    GUIDelete()
EndFunc   ;==>Example