Что нового

[Элементы GUI] Не работает автопрокрутка в Edit

sss

Продвинутый
Сообщения
332
Репутация
96
Создал в GUI элемент Edit. Поставил ему стили $ES_MULTILINE + $ES_READONLY, мультистроковость и только чтение. Впоследствии понадобилась автопрокрутка - было много текста, и он уходил вниз. Добавил в стили Эдита $ES_AUTOVSCROLL, т.е. стили стали $ES_MULTILINE + $ES_READONLY + $ES_AUTOVSCROLL. Первые два работают, третий - ни в какую. Помогите разобраться.

Сам код:
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### 
Form=$Form1_1 = GUICreate("", 501, 462, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 8, 28, 481, 381,$ES_MULTILINE + $ES_READONLY + $ES_AUTOVSCROLL)
GUICtrlSetData(-1, "")
$Label1 = GUICtrlCreateLabel("123456789", 8, 8, 316, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Sleep(5000); чтобы посмотреть


P.S: для админов и модераторов: в браузере Google Chrome творится что-то странное с полем ввода. Ентеров (переход на новую строку) нет, они стираются, если пишешь путь, вообще абракадабра. Отредактировал сообщение через оперу, там все ок. Но в хроме черта показывается чертой, а в опере бб-кодом - hr.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Код:
$Edit1 = GUICtrlCreateEdit("", 8, 28, 481, 381, BitOr($ES_WANTRETURN, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_MULTILINE, $ES_READONLY))


P.S
$ES_AUTOVSCROLL Совсем не означает что текст будет автоматический прокручиваться.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1_1 = GUICreate("", 501, 462, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 8, 28, 481, 381, BitOr($ES_WANTRETURN, $WS_VSCROLL, $ES_MULTILINE, $ES_READONLY))
$Label1 = GUICtrlCreateLabel("123456789", 8, 8, 316, 17)
GUISetState(@SW_SHOW)

For $i = 1 To 100
	GUICtrlSetData($Edit1, $i & @CRLF, 1)
Next

Sleep(3000); чтобы посмотреть
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
И еще пример, с прокруткой до последней строки:
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#Include <GuiEdit.au3>
#include <WindowsConstants.au3>

Local $hMainWin, $hEdit, $sAddText

$hMainWin = GUICreate('', 501, 462, 192, 124)

$hEdit = GUICtrlCreateEdit('', 8, 28, 481, 381, BitOr($ES_READONLY, $ES_MULTILINE, $ES_WANTRETURN, $WS_VSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL))

For $i=1 To 250
	$sAddText &= 'string '& $i & @CRLF
Next
GUICtrlSetData($hEdit, $sAddText)

;~ Прокрутка списка до последней строки
_GUICtrlEdit_LineScroll($hEdit, 0, _GUICtrlEdit_GetLineCount($hEdit))

GUISetState()

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
 
Автор
sss

sss

Продвинутый
Сообщения
332
Репутация
96
Последний вариант подошел, при первом все равно не крутилась сама. При вставке функции из второго варианта после калрго ввода данных помогло. Спасибо, тема закрыта.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Еще есть вот это.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Sky-WaLkeR [?]
при первом все равно не крутилась сама
А если запустить его?
По крайней мере в XP, и с добавлением по одной строчке, прокручивается вниз.
 
Верх