Что нового

Максимальная ширина колонки ListView

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Ширина задается так:
Код:
GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 0, 70)

А как задать максимальную ширину? Такое возможно?


Добавлено:
Сообщение автоматически объединено:

или как убрать автоматическое изменение ширины? например я задал ширину в 70, но когда добавляешь длинный текст, то ширина увеличивается. Может можно отловить какое нибудь сообщение в WM_NOTIFY для $hListView когда ширина меняется?


Добавлено:
Сообщение автоматически объединено:

нужно для последней колонки, т.к появляется горизонтальная прокрутка. Хочу что бы ее не было.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
inververs
Два вызова сделать с $LVSCW_AUTOSIZE и $LVSCW_AUTOSIZE_USEHEADER, чтобы автоматически установить ширину по наибольшей длине пункта и заголовка. В примере в справке упомянуты обе константы в комментарии.

или как убрать автоматическое изменение ширины?
Не помню чтобы ширина изменялась автоматически. Помню первое время изменял ширину длинной текста в заголовке.
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
AZJIO
Вот например, если не добовлять текст, то ширина колонки одна, если добавить, то колонка увеличивается и появляется прокрутка
Код:
#include <GuiListView.au3>
#include <ListViewConstants.au3>
$Form1 = GUICreate("", 392, 337, 616, 385)
$ListView1 = GUICtrlCreateListView("Дата|Задание|Состояние|Время|Отчет", 8, 212, 377, 118, BitOR($LVS_DEFAULT, $LVS_NOSORTHEADER, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_DOUBLEBUFFER, $LVS_EX_FULLROWSELECT))
GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 0, 70)
GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 1, 60)
GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 2, 90)
GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 3, 50)
GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 4, 45)
GUISetState()
_GUICtrlListView_SetColumnWidth($ListView1, 4, $LVSCW_AUTOSIZE)
_GUICtrlListView_SetColumnWidth($ListView1, 4, $LVSCW_AUTOSIZE_USEHEADER)

$ListView1_1 = GUICtrlCreateListViewItem("17:05 19:27|91424|4|Выполнено|http://autoit-script.ru/index.php/topic,13680.msg86781/topicseen.html#new", $ListView1)
Do
Until GUIGetMsg()= -3

Даже если закоментировать
Код:
_GUICtrlListView_SetColumnWidth($ListView1, 4, $LVSCW_AUTOSIZE)
_GUICtrlListView_SetColumnWidth($ListView1, 4, $LVSCW_AUTOSIZE_USEHEADER)

все равно увеличиваются
 
Верх