Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] GUICtrlCreateInput (переход в начало) (http://forum.oszone.net/showthread.php?t=266168)

malev79@vk 14-08-2013 14:54 2201437

GUICtrlCreateInput (переход в начало)
 
Подскажите можно ли перейти в начало данного контрола, если весь текст не помещается. По умолчанию курсор остается за последним символом а надо чтобы был в начале. Вручную помогает нажатие клавишы "Home".

GUICtrlCreateInput ("Ну очень, очень длинный текст здесь находится",120,50,50,20)

Creat0R 14-08-2013 16:46 2201533

Цитата:

Цитата malev79@vk
можно ли перейти в начало данного контрола, если весь текст не помещается »

Что значит перейти?
Если по некой кнопке, то можно так:

Код:

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

$hGUI = GUICreate("Test Script", 300, 200)

$iInput = GUICtrlCreateInput("Ну очень, очень длинный текст здесь находится", 20, 30, 100, 20)
$iSetCarret_Bttn = GUICtrlCreateButton("Set carret to begining", 20, 60, 120, 20)

GUISetState(@SW_SHOW, $hGUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $iSetCarret_Bttn
            GUICtrlSendMsg($iInput, $EM_SETSEL, 0, 0)
    EndSwitch
WEnd


malev79@vk 15-08-2013 09:45 2201909

Думаю подойдет такой вариант, нужно для указания пути к файлу, который может быть очень длинным.
А так было бы неплохо если сразу бы без кнопки в начало переходил.

Iska 15-08-2013 10:32 2201930

malev79@vk, уже ж спрашивали — как переходил:
Цитата:

Цитата Creat0R
Что значит перейти? »

?! В какой момент? При получении полем фокуса?

Creat0R 16-08-2013 12:40 2202619

Цитата:

Цитата malev79@vk
было бы неплохо если сразу бы без кнопки в начало переходил »

Код:

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

$hGUI = GUICreate("Test Script", 300, 200)

$iInput = GUICtrlCreateInput("", 20, 30, 100, 20)

GUISetState(@SW_SHOW, $hGUI)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

GUICtrlSetData($iInput, "Ну очень, очень длинный текст здесь находится", 1)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func WM_COMMAND($hWnd, $nMsg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0xFFFF)
    Local $hCtrl = $lParam

    Switch $nID
        Case $iInput
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_UPDATE
                    GUICtrlSendMsg($iInput, $EM_SETSEL, 0, 0)
            EndSwitch
    EndSwitch

    Return $GUI_RUNDEFMSG
EndFunc


beve 17-08-2013 13:14 2203150

Цитата:

Цитата malev79@vk
А так было бы неплохо если сразу бы без кнопки в начало переходил »

Код:

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

$hGUI = GUICreate("Test Script", 300, 200)

$PathInput = GUICtrlCreateInput("Выберите...", 20, 30, 100, 20)
$PathButton=GUICtrlCreateButton("...", 120, 30, 30, 20)
GUISetState(@SW_SHOW, $hGUI)

While 1
   
Switch GUIGetMsg()
       
Case $GUI_EVENT_CLOSE
           
Exit
        Case
$PathButton
            $var
= FileOpenDialog("Выберите нужный файл", @systemDir & "\", "Рисунки (*.jpg;*.bmp)", 1, "OEMLogo.bmp")
           
if Not @error Then
               
GUICtrlSetData($PathInput, $var)
           
else
               
GUICtrlSetData($PathInput, "Выберите...")
           
endif
           
GUICtrlSendMsg($PathInput, $EM_SETSEL, 0, 0)
   
EndSwitch
WEnd



Время: 15:48.

Время: 15:48.
© OSzone.net 2001-