doppelklick

  • Weis einer wie man einen Dopppelklick in einer Listbox von den au3 Lib auswertet ? also darauf reagiert?

  • ich hab was fürn doppelklick... kannst mal austesten...

    [autoit]


    Func _DoubleClickOnListView($hWndGUI, $MsgID, $wParam, $lParam)
    Local $tagNMHDR, $event, $hwndFrom, $code
    $tagNMHDR=DllStructCreate("int;int;int", $lParam)
    If @error Then Return
    $event=DllStructGetData($tagNMHDR, 3)
    If $wParam=$ListView Then
    If $event=$NM_DBLCLK Then
    If GUICtrlRead(GUICtrlRead($LISTVIEW))<>"0" Then
    $LISTDATA=GUICtrlRead(GUICtrlRead($LISTVIEW))
    GUICtrlSetData($HIER_DIE_DATEN_HINKOPIEREN, $LISTDATA[1])
    EndIf
    EndIf
    EndIf
    $tagNMHDR=0
    $event=0
    $lParam=0
    EndFunc

    [/autoit]

    das hier brauchst auch noch...

    [autoit]


    Global Const $NM_FIRST = 0
    Global Const $NM_DBLCLK = -3
    Global $dll = DllOpen("user32.dll")

    [/autoit]

    sowie...

    [autoit]


    GUIRegisterMsg(0x004E, "_DoubleClickOnListView")

    [/autoit]
  • ich glaube die ähnliche funktion habe ich auch. Werde dies aufjedenfall auch nochmal Probieren aber, wie gesagt ich brauche eine die auch mit au3 Lib funktioniert...

  • Irgendwoher habe ich dieses hier

    [autoit]


    ;Register WM_NOTIFY events
    GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")

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

    .
    .
    .

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

    ; WM_NOTIFY event handler
    Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGUI, $MsgID, $wParam
    Local $tagNMHDR, $event, $hwndFrom, $code
    $tagNMHDR = DllStructCreate("int;int;int", $lParam);NMHDR (hwndFrom, idFrom, code)
    If @error Then Return
    $event = DllStructGetData($tagNMHDR, 3)
    Select
    Case $wParam = $suche_list
    Select
    ;Case $event = $NM_CLICK
    ;ConsoleWrite("SingleClick" & @LF)
    Case $event = $NM_DBLCLK
    $text = _GUICtrlListViewGetItemText ($suche_list, _GUICtrlListViewGetSelectedIndices($suche_list))
    $text = StringLeft($text,StringInStr($text,"|")-1)
    up_anzeigen($text)
    ;MsgBox(0,"Double Clicked", _GUICtrlListViewGetItemText ($suche_list, _GUICtrlListViewGetSelectedIndices($suche_list)))
    EndSelect
    EndSelect
    $tagNMHDR = 0
    $event = 0
    $lParam = 0
    EndFunc ;==>WM_Notify_Events

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

    Leider habe ich gerade keine Zeit das weiter auszuholen - habe es kurzerhand aus dem Script kopiert an dem ich gerade arbeite - vielleicht nützt es Dir aber was....

    Grüsse
    Carsten

  • mein fehler war eigentlich in der hilde richtig drin.

    [autoit]


    #include <A3LListbox.au3>

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

    Global $hGUI, $hList, $iI

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

    ; Create GUI
    $hGUI = GUICreate("List Box", 400, 296)
    $hList = _Listbox_Create($hGUI, 2, 2, 396, 294)
    GUISetState()

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

    ; Capture messages
    GUIRegisterMsg($WM_COMMAND, "_Listbox_WM_COMMAND")

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

    ; Add strings
    _ListBox_BeginUpdate($hList)
    for $iI = 1 to 9
    $sText = StringFormat("%03d : Random string", Random(1, 100, 1))
    _Listbox_AddString($hList, $sText)
    next
    _ListBox_EndUpdate($hList)

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

    ; Click the fourth item in the list
    _Listbox_ClickItem($hList, 3)

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

    ; Loop until user exits
    do
    until GUIGetMsg() = $GUI_EVENT_CLOSE^

    [/autoit]

    Einmal editiert, zuletzt von Tam0r (18. Juli 2007 um 23:54)

  • Habe diese Funtion in einer 64bit Applikation eingebaut und es funzt nicht.

    In einer 32bit-Exe gibt es keine Probleme.

    Anscheind wird ein komischer Wert beim int geliefert...

    Hat jemand eine Idee ?