Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для gregaz

Пользователь


Сообщения: 88
Благодарности: 19

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
В этой функции нужно проверять $wParam, оно будет ровняться идентиикатору ListView, BitAND($wParam, 0xFFFF) вернёт идентификатор конкретного элемента (ListViewItem). »
Подскажи как выполнить .Моя попытка не увенчалась успехом :
Это чуть измененный пример от Maza Faka (пост 1969)
Код: Выделить весь код
#include <GuiConstants.au3>
#include <GuiListView.au3>

$Gui = GUICreate("Test", 800, 400)

$hListView1 = _GUICtrlListView_Create($GUI, "Items|SubItems", 2, 2, 296, 196, BitOR($LVS_EDITLABELS, $LVS_REPORT))
_GUICtrlListView_SetExtendedListViewStyle($hListView1, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
$ListItem1 = _GUICtrlListView_AddItem($hListView1, "Item1")
$ListItem2 = _GUICtrlListView_AddItem($hListView1, "Item2")

$hListView2 = _GUICtrlListView_Create($GUI, "Items|SubItems", 402, 2, 296, 196, BitOR($LVS_EDITLABELS, $LVS_REPORT))
_GUICtrlListView_SetExtendedListViewStyle($hListView2, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
$ListItem3 = _GUICtrlListView_AddItem($hListView2, "Item3")
$ListItem4 = _GUICtrlListView_AddItem($hListView2, "Item4")
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

GUISetState()

While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
        ExitLoop
    EndSwitch
WEnd

Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hListView= BitAND($iwParam, 0xFFFF);                   Попытка  идентификации ListView ??
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")

    Switch $hWndFrom
    Case $hWndListView
        Switch $iCode
        Case $LVN_BEGINLABELEDIT
            Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
            Return False
        Case $LVN_ENDLABELEDIT
            Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
            Local $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
            If StringLen(DllStructGetData($tBuffer, "Text")) Then Return True
            EndSwitch
        EndSwitch
        Return $GUI_RUNDEFMSG
    EndFunc

Отправлено: 17:19, 15-01-2008 | #2