Что нового

Баг или фича _GUICtrlListView_GetStringWidth

fewayax

Новичок
Сообщения
3
Репутация
0
Вот в таком виде код не работает

Код:
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

    GUICreate("Form1", 550, 300)
    $hListView = GUICtrlCreateListView("Колонка 1|Колонка 2|Колонка 3", 2, 2, 546, 268, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))
    GUISetState()

    ; Добавляет колонки
   ; _GUICtrlListView_AddColumn($hListView, "Колонка 00", 100)

    ; Добавляет пункты
;~     _GUICtrlListView_AddItem($hListView, "Пункт 1")
;~     _GUICtrlListView_AddItem($hListView, "Пункт 2")
;~     _GUICtrlListView_AddItem($hListView, "Пункт 3")

GUICtrlCreateListViewItem("aaa 1|bbb 2|ccc 3", $hListView)

    ; Получает ширину строки
    MsgBox(4160, "Информация", 'Ширина строки "Тест": ' & _GUICtrlListView_GetStringWidth($hListView, "Тест"))

    ; Цикл выполняется, пока окно не будет закрыто
    Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()


Результат _GUICtrlListView_GetStringWidth($hListView, "Тест") = 0

Но при запуске ISN AutoIt Studio с активированными "Расширенные возможности отладки" функция выдает результат.

Также функция работает если колонка и/или пункты созданы посредством
Код:
_GUICtrlListView_AddColumn($hListView, "Колонка 00", 100)
_GUICtrlListView_AddItem($hListView, "Пункт 1")


Не понятно поведение функции _GUICtrlListView_GetStringWidth. Может кто объяснит?
 

Norm

Продвинутый
Сообщения
279
Репутация
74
Это ошибка в библиотеке GuiListView.au3
Отредактируйте в функции _GUICtrlListView_GetStringWidth() эту строку:
Код:
If _GUICtrlListView_GetUnicodeFormat Then

Должно быть так:
Код:
If _GUICtrlListView_GetUnicodeFormat($hWnd) Then
 
Верх