Function Reference

_GUICtrlEdit_Create

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

#Include <GuiEdit.au3>
_GUICtrlEdit_Create($hWnd, $sText, $iX, $iY[, $iWidth = 150[, $iHeight = 150[, $iStyle = 0x003010C4[, $iExStyle = 0x00000200]]]])

 

パラメータ

$hWnd 親ウィンドウまたはオーナーウィンドウのハンドル
$sText コントロールに表示されるテキスト
$iX コントロールの水平位置
$iY コントロールの垂直位置
$iWidth [オプション]コントロールの幅
$iHeight [オプション]コントロールの高さ
$iStyle [オプション]コントロールのスタイル:
$ES_AUTOHSCROLL - ユーザーが行末に文字を入力する際に10文字毎に自動的にテキストを右にスクロールします。
$ES_AUTOVSCROLL - ユーザーが行末でENTERキーを押した際に自動的にテキストを1ページ上にスクロールします。
$ES_CENTER - エディットコントロール内のテキストを中央揃えにします。
$ES_LEFT - テキストを左余白に揃えます。
$ES_LOWERCASE - エディットコントロールに入力された全ての文字を小文字に変換します。
$ES_MULTILINE - 強制
$ES_NOHIDESEL - コントロールにフォーカスが合っていない場合でも選択されたテキストを反転します。
$ES_NUMBER - エディットコントロールに数値のみ入力できるようにします。
$ES_OEMCONVERT - エディットコントロールに入力されたテキストを変換します。
$ES_READONLY - ユーザーがエディットコントロール内でテキストを編集したり、入力できないようにします。
$ES_RIGHT - エディットコントロールのテキストを右揃えにします。
$ES_UPPERCASE - エディットコントロールに入力された全ての文字を大文字に変換します。
$ES_WANTRETURN - ユーザーがENTERキーを押した際キャリッジリターンが挿入されるように指定します。
$ES_PASSWORD - エディットコントロールに入力された各文字としてアスタリスク(*)を表示します。
デフォルト: $ES_MULTILINE, $ES_WANTRETURN、$WS_VSCROLL、$WS_HSCROLL、$ES_AUTOVSCROLL、$ES_AUTOHSCROLL
強制 : WS_CHILD、$WS_VISIBLE、$ES_READONLYでない場合$WS_TABSTOP
$iExStyle [オプション]コントロールの拡張スタイル。これらは標準の$WS_EX_定数と対応しています。

 

返し値

成功: エディットコントロールのハンドル
失敗: 0

 

注意

この関数は上級者、コントロール動作学習用です。

 

関連

_GUICtrlEdit_Destroy

 


#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiEdit.au3>
#include <WinAPI.au3> ; 下位/上位ワードで使用
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>

Opt('MustDeclareVars', 1)

$Debug_Ed = False ; Edit関数に渡されるClassNameを調べる。動作を確認するにはTrueを設定し、他のコントロールのハンドルを使用

Global $hEdit

_Example1()
_Example2()

Func _Example1()
    Local $hGUI

    ; GUIを作成
    $hGUI = GUICreate("Edit Create", 400, 300)
    $hEdit = _GUICtrlEdit_Create($hGUI, "This is a test" & @CRLF & "Another Line", 2, 2, 394, 268)
    GUISetState()

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    _GUICtrlEdit_AppendText($hEdit, @CRLF & "Append to the end?")
   
    ; ユーザーが終了するまでループ
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Example1

Func _Example2()
    Local $hGUI

    ; GUIを作成
    $hGUI = GUICreate("Edit Create", 400, 300)
    $hEdit = _GUICtrlEdit_Create($hGUI, "", 2, 2, 394, 268)
    GUISetState()

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

    _GUICtrlEdit_SetText($hEdit, "This is a test" & @CRLF & "Another Line")
   
    ; ユーザーが終了するまでループ
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Example2

Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
    If Not IsHWnd($hEdit) Then $hWndEdit = GUICtrlGetHandle($hEdit)
    $hWndFrom = $ilParam
    $iIDFrom = _WinAPI_LoWord($iwParam)
    $iCode = _WinAPI_HiWord($iwParam)
    Switch $hWndFrom
        Case $hEdit, $hWndEdit
            Switch $iCode
                Case $EN_ALIGN_LTR_EC ; ユーザーがエディットコントロールの方向を左から右に変更した際に送信される
                    _DebugPrint("$EN_ALIGN_LTR_EC" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値なし
                Case $EN_ALIGN_RTL_EC ; ユーザーがエディットコントロールの方向を右から左に変更した際に送信される
                    _DebugPrint("$EN_ALIGN_RTL_EC" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値なし
                Case $EN_CHANGE ; ユーザーがエディットコントロール内のテキストが変更される処理をおこなった際に送信される
                    _DebugPrint("$EN_CHANGE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値なし
                Case $EN_ERRSPACE ; エディットコントロールが特定の要求に合うだけのメモリを確保できなかった際に送信される
                    _DebugPrint("$EN_ERRSPACE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値なし
                Case $EN_HSCROLL ; ユーザーがエディットコントロールの水平スクロールバーをクリックした際に送信される
                    _DebugPrint("$EN_HSCROLL" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値なし
                Case $EN_KILLFOCUS ; エディットコントロールからキーボードフォーカスが外れた際に送信される
                    _DebugPrint("$EN_KILLFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値なし
                Case $EN_MAXTEXT ; 挿入しようとしたテキストがエディットコントロールで指定された文字数を超えた際に送信される
                    _DebugPrint("$EN_MAXTEXT" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; このメッセージはエディットコントロールに$ES_AUTOHSCROLLスタイルが設定されておらず、
                    ; 挿入文字数がエディットコントロールの幅を超えている場合にも送信される
                    ; このメッセージはエディットコントロールに$ES_AUTOVSCROLLスタイルが設定されておらず、
                    ; テキスト挿入した際の総行数がエディットコントロールの高さを超えている場合にも送信される

                    ; 返し値なし
                Case $EN_SETFOCUS ; エディットコントロールにキーボードフォーカスが合った際に送信される
                    _DebugPrint("$EN_SETFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値なし
                Case $EN_UPDATE ; エディットコントロールが自身を再描画している際に送信される
                    _DebugPrint("$EN_UPDATE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値なし
                Case $EN_VSCROLL ; ユーザーがエディットコントロールの垂直スクロールバーをクリックした際またはエディットコントロール上でマウスホイールをスクロールした際に送信される
                    _DebugPrint("$EN_VSCROLL" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
                            "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
                            "-->Code:" & @TAB & $iCode)
                    ; 返し値なし
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

Func _DebugPrint($s_text, $line = @ScriptLineNumber)
    ConsoleWrite( _
            "!===========================================================" & @LF & _
            "+======================================================" & @LF & _
            "-->Line(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _
            "+======================================================" & @LF)
EndFunc   ;==>_DebugPrint