Function Reference

GUICtrlCreateEdit

GUI用のエディットコントロールを作成します。

GUICtrlCreateEdit ( "text", left, top [, width [, height [, style [, exStyle]]]] )

 

パラメータ

text コントロールのテキスト。
left コントロールの左端。-1を使用するとGUICoordModeに基づいて左端位置が計算されます。
top コントロールの上端。-1を使用するとGUICoordModeに基づいて上端位置が計算されます。
width [オプション] コントロールの幅(デフォルトは最後に使用された幅)。
height [オプション] コントロールの高さ(デフォルトは最後に使用された高さ)。
style [オプション] コントロールのスタイルを定義。GUIコントロールスタイル付録を参照。

デフォルト ( -1) : $ES_WANTRETURN、$WS_VSCROLL、$WS_HSCROLL、$ES_AUTOVSCROLL、$ES_AUTOHSCROLL
強制適用されるスタイル : $ES_READONLYが設定されていない場合のみ$ES_MULTILINE、$WS_TABSTOP
exStyle [オプション] コントロールの拡張スタイルを定義。拡張スタイル表を参照。

 

返し値

成功 新しく作成したコントロールの識別子(コントロールID)を返します。
失敗 0を返します。

 

注意

コントロールの値を取得する方法についてはGUICtrlReadを参照。
コントロールの情報を設定/変更する方法についてはGUICtrlUpdate...を参照。

デフォルトスタイルに他のスタイルを組み合わせる場合はBitOr($GUI_SS_DEFAULT_EDIT, newstyle,...)を使用してください。

このコントロールにファイル名をドラッグアンドドロップできるようにしたい場合はGUICreate()WS_EX_ACCEPTFILES拡張スタイルを追加し、状態に$GUI_DROPACCEPTEDを設定してください。
選択されたファイルが複数の場合、別々の行にドロップされます。

上で指定されている値を使用するためにはスクリプトに#include <EditConstants.au3>と書く必要があります。

デフォルトのサイズ変更方法は$GUI_DOCKAUTOで左上位置が基準になります。

リッチエディットコントロールは複雑すぎるため基本コントロールに含まれていません。
リッチエディットコントロールが必要な場合は例2を参照してGuiCtrlCreateObjを使用してください。

 

関連

GUICoordMode (Option), GUICtrlSetData, GUICtrlSetState, GUICtrlSetLimit, GUIGetMsg, GUICtrlRead

 


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

Opt('MustDeclareVars', 1)

Global $oMyError

Example()
RichEditExample()

Func Example()
    Local $myedit, $msg

    GUICreate("My GUI edit")  ; 表示時に中央に表示されるダイアログボックスを作成

    $myedit = GUICtrlCreateEdit("First line" & @CRLF, 176, 32, 121, 97, $ES_AUTOVSCROLL + $WS_VSCROLL)

    GUISetState()

    Send("{END}")

    ; 3番目のパラメータを忘れないように
    GUICtrlSetData($myedit, "Second line", 1)

    ; ダイアログが閉じられるまでGUIを実行
    While 1
        $msg = GUIGetMsg()
       
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()
EndFunc   ;==>Example


; GUICtrlCreateObjを使用したリッチエディットコントロールの例

; 作成者: Kae Johansson
; AutoIt Version: 3.1.1.55
; 説明: とてもシンプルな例:RICHTEXTオブジェクトの埋め込み
; 必須: system32内のMSCOMCT2.OCX。通常は存在する
; 日付: 3 jul 2005
Func RichEditExample()
    Local $oRP, $TagsPageC, $AboutC, $PrefsC, $StatC, $GUIActiveX, $msg
   
    $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

    $oRP = ObjCreate("RICHTEXT.RichtextCtrl.1")

    GUICreate("Embedded RICHTEXT control Test", 320, 200, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
    $TagsPageC = GUICtrlCreateLabel('Visit Tags Page', 5, 180, 100, 15, $SS_CENTER)
    GUICtrlSetFont($TagsPageC, 9, 400, 4)
    GUICtrlSetColor($TagsPageC, 0x0000ff)
    GUICtrlSetCursor($TagsPageC, 0)
    $AboutC = GUICtrlCreateButton('About', 105, 177, 70, 20)
    $PrefsC = GUICtrlCreateButton('FontSize', 175, 177, 70, 20)
    $StatC = GUICtrlCreateButton('Plain Style', 245, 177, 70, 20)

    $GUIActiveX = GUICtrlCreateObj($oRP, 10, 10, 400, 260)
    GUICtrlSetPos($GUIActiveX, 10, 10, 300, 160)

    With $oRP; オブジェクトタグプール
        .OLEDrag()
        .Font = 'Arial'
        .text = "Hello - Au3 supports ActiveX components like the RICHTEXT thanks to SvenP" & @CRLF & 'Try write some text and quit to reload'
        ;.FileName = @ScriptDir & '\RichText.rtf'
        ;.BackColor = 0xff00
    EndWith

    GUISetState();GUI表示

    While 1
        $msg = GUIGetMsg()
       
        Select
            Case $msg = $GUI_EVENT_CLOSE
                $oRP.SaveFile(@ScriptDir & "\RichText.rtf", 0)
                ExitLoop
            Case $msg = $TagsPageC
                Run(@ComSpec & ' /c start http://www.myplugins.info/guids/typeinfo/typeinfo.php?clsid={3B7C8860-D78F-101B-B9B5-04021C009402}', '', @SW_HIDE)
            Case $msg = $AboutC
                $oRP.AboutBox()
            Case $msg = $PrefsC
                $oRP.SelFontSize = 12
            Case $msg = $StatC
                $oRP.SelBold = False
                $oRP.SelItalic = False
                $oRP.SelUnderline = False
                $oRP.SelFontSize = 8
        EndSelect
    WEnd
    GUIDelete()
EndFunc   ;==>RichEditExample

Func MyErrFunc()

    MsgBox(0, "AutoItCOM Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
            "err.description is: " & @TAB & $oMyError.description & @CRLF & _
            "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
            "err.number is: " & @TAB & Hex($oMyError.number, 8) & @CRLF & _
            "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
            "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
            "err.source is: " & @TAB & $oMyError.source & @CRLF & _
            "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
            "err.helpcontext is: " & @TAB & $oMyError.helpcontext _
            , 5)
    ; 5秒後に自動で処理再開
   
    Local $err = $oMyError.number
    If $err = 0 Then $err = -1
   
    SetError($err)  ; この関数が返ったあとのチェック用
EndFunc   ;==>MyErrFunc