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

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

-TRM- 26-11-2018 19:21 2842736

GUICtrlCreateListView - фиксированная длина колонок
 
Приветствую, возможно ли сделать фиксированную длину колонок, чтобы пользователь не мог раздвигать колонки?
Код:

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

$Debug_LV = False ; Проверяет ClassName передаваемый в ListView функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

_Main()

Func _Main()
    Local $hListView

    GUICreate("ListView - Вставляет колонки", 400, 300)
    $hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
    GUISetState()

    ; Вставляет колонки
    _GUICtrlListView_InsertColumn($hListView, 0, "Колонка 1", 100)
    _GUICtrlListView_InsertColumn($hListView, 1, "Колонка 2", 100)
    _GUICtrlListView_InsertColumn($hListView, 2, "Колонка 3", 100)

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


Creat0R 28-11-2018 10:11 2843030

Можно:

Код:

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

$hGUI = GUICreate('GUICtrlListView Example', 420, 240)

$hListView = GUICtrlCreateListView('Column1|Column2|Column3|Column4', 20, 20, 380, 200, $LVS_NOSORTHEADER)

GUICtrlCreateListViewItem('Item 1|SubItem 1_1|SubItem 1_2|SubItem 1_3', $hListView)
GUICtrlCreateListViewItem('Item 2|SubItem 2_1|SubItem 2_2|SubItem 2_3', $hListView)

_GUICtrlListView_SetColumnWidth($hListView, 0, 80)
_GUICtrlListView_SetColumnWidth($hListView, 1, 80)

GUISetState(@SW_SHOW, $hGUI)
GUIRegisterMsg($WM_NOTIFY, '__WM_NOTIFY')

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

Func __WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
    Local $stTagNMHDR = DllStructCreate('uint_ptr hWndFrom;uint_ptr iIDFrom;int iCode;uint_ptr iItem;uint_ptr iButton;ptr pitem', $lParam)
    If @error Then Return $GUI_RUNDEFMSG

    Local $iCode = DllStructGetData($stTagNMHDR, 'iCode')

    Switch $iCode
        Case $HDN_ITEMCHANGING, $HDN_ITEMCHANGINGW
            Return 1 ;Prevent draging the item
    EndSwitch

    Return $GUI_RUNDEFMSG
EndFunc


-TRM- 28-11-2018 13:55 2843072

Creat0R, Понимаю что не по теме, но прежде чем создавать новую-возможно ли определенные колонки просто спрятать от глаз пользователя, но чтобы возможно было с них считывать информацию? Или лучше использовать ваш пример и _GUICtrlListView_HideColumn ?

Creat0R 28-11-2018 22:53 2843156

Цитата:

Цитата -TRM-
возможно ли определенные колонки просто спрятать от глаз пользователя, но чтобы возможно было с них считывать информацию? »

Возможно.

Цитата:

Цитата -TRM-
Или лучше использовать ваш пример и _GUICtrlListView_HideColumn ? »

Или _GUICtrlListView_SetColumnWidth($hListView, 1, 0), это тоже самое.


Время: 13:47.

Время: 13:47.
© OSzone.net 2001-