ListBox

  • Hallo, ich hab mal wieder eine Frage^^
    Kann man es hinbekommen, das ein ListBox (GuiCtrlCreateList) die Items von Links nach rechts anortnet, also nicht von oben nach unten?

    Spoiler anzeigen
    [autoit]

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

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 578, 26, 337, 709)
    $List1 = GUICtrlCreateList("", 2, 2, 571, 19, BitOR($LBS_SORT,$LBS_STANDARD,$WS_VSCROLL,$WS_BORDER))
    GUICtrlSetData(-1, "Test1|Test2|Test3|Test4|Test5")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]


    Also das die Items da in einer reie sind, und man sie trotzdem einzeln auswählen kann!

    mfg. Jam00

  • Ja ne bei ListView bruache ich ja für jede Spalte eine neue Spalte! Das möchte ich haber nicht, sondern einfach ganau das gleiche wie eine ListBox, eben nur von links nach rechts!
    Oder wenn ich sowas wie beim FireFox machen kann mit den Taps, das würde auch gehen!

    mfg. Jam00

    • Offizieller Beitrag

    Jam00 willst du Windows neu programmieren ? Eine List is nun mal eine List und verhällt sich auch so. Was du suchst wäre ein Listview . Und wenn dir der Programmieraufwand zu viel ist , mußt du halt drauf verzichten. Um einer List das beizubringen was du willst , ist mehr Aufwand erforderlich , als gleich ein Listview oder ein anderes Viewcontrol zu verwenden . :thumbup: 8o

    Edit : Schhau mal unter _GUICtrlListBox_Create da gibt es den Style $LBS_MULTICOLUMN eventuell könntest du des mit einer richtigen "Listbox" machen . Dein Beispiel ist eine LIst .

    Edit 2 meinst du sowas in der Art ?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ListBoxConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListBox.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1")
    $List1 = _GUICtrlListBox_Create ($Form1,"", 2, 2, 571, 25, BitOR($LBS_MULTICOLUMN,$LBS_SORT,$LBS_STANDARD,$WS_VSCROLL,$WS_BORDER))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    _GUICtrlListBox_BeginUpdate($List1)
    _GUICtrlListBox_SetColumnWidth($List1, 15)

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To 9
    _GUICtrlListBox_AddString($List1, $i)
    Next
    _GUICtrlListBox_EndUpdate($List1)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Meinst du das mit dem Firefoxstyle so ?

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GuiConstantsEx.au3>
    #include <GuiTab.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    $Debug_TAB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

    [/autoit] [autoit][/autoit] [autoit]

    Global $hTab, $hGUI, $hInfoLabel

    [/autoit] [autoit][/autoit] [autoit]

    $hGUI = GUICreate("(UDF Created) Tab Control Create", 400, 300)
    $hTab = _GUICtrlTab_Create($hGUI, 2, 2, 396, 28, BitOR($TCS_FIXEDWIDTH, $TCS_HOTTRACK))
    $hInfoLabel = GUICtrlCreateLabel("", 2, 150, 300, 17)
    GUISetState()
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlTab_SetItemSize($hTab, 50, 20)

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlTab_InsertItem($hTab, 0, "1")
    _GUICtrlTab_InsertItem($hTab, 1, "2")
    _GUICtrlTab_InsertItem($hTab, 2, "3")
    _GUICtrlTab_InsertItem($hTab, 3, "4")
    _GUICtrlTab_InsertItem($hTab, 4, "5")
    _GUICtrlTab_InsertItem($hTab, 5, "6")
    _GUICtrlTab_InsertItem($hTab, 6, "7")
    _GUICtrlTab_InsertItem($hTab, 7, "8")
    _GUICtrlTab_InsertItem($hTab, 8, "9")

    [/autoit] [autoit][/autoit] [autoit]

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTab
    $hWndTab = $hTab
    If Not IsHWnd($hTab) Then $hWndTab = GUICtrlGetHandle($hTab)

    [/autoit] [autoit][/autoit] [autoit]

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndTab
    Switch $iCode
    Case $NM_CLICK ; The user has clicked the left mouse button within the control
    GUICtrlSetData($hInfoLabel, "Es wurde " & _GUICtrlTab_GetItemText($hTab, _GUICtrlTab_GetCurFocus($hTab)) & " angeklickt")
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit] [autoit][/autoit] [autoit][/autoit]


    Aber ich stimme Oscar zu, wenn du was willst dann kannst du es auch mal ein bischen ausführlicher beschreiben .

  • Raupi, das ist super! Kann man da in das Item auch noch irgendwie ein X Button reinmachen?

    Oscar

    Ja, eigentlich brauche ich beides! Die von Raupi sind eigentlich genau was ich brauche, nur bei dem ListBox bekomm ich rigendwie keinen Scroolbalken von links nach rechts rein :(

    EDIT

    Raupi

    bei deinem Ersten, mit der ListBox, kann man das da auch so machen, das die Breite der Items Automatisch angepass wird? Weil wenn ich einen Längeren Text eingebe verschwindet der ja, und da ich bevor ich das Programm starte noch nicht weiß wie lang die sind kann ich das auch nicht einfach in Zeile 12 schon voher einstellen!

    mfg. Jam00

    Einmal editiert, zuletzt von Jam00 (22. Februar 2009 um 12:22)