Автор Тема: в контекстном меню не заменяется текст пунктов  (Прочитано 458 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Pahuchiy [?]

  • Новичок
  • *
  • Сообщений: 35
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Основная задача - динамически менять меню в зависимости от того над какой ячейкой находится курсор. В скрипте в данный момент меню вообще не работает. Когда делал упрощёный пример, не смог воспроизвести работоспособность. В основном скрипте меню появляется. Но $iHotSubItem не изменяется. Тоесть, первое значение $iHotSubItem так и остаётся, не смотря на то что при движении курсора над ListView $iHotSubItem принимает новые значения. В основном скрипте я это проверял. Вобщем, прошу всё починить)
Код: AutoIt [Выделить]
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiListView.au3>
#include <GuiMenu.au3>

$hGui = GUICreate("Test", 250, 250)

$hListView = GUICtrlCreateListView("Column 1|Column 2|Column 3", 10, 10, 230, 160)


For $i = 1 To 16
    GUICtrlCreateListViewItem("Item " & $i & "1|Item " & $i & "2|Item " & $i & "3", $hListView)
Next

GUISetState()

GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd


Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $tInfo
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")

    Switch $hWndFrom
         Case $hListView
            Switch $iCode
                Case $LVN_HOTTRACK
                    $tInfo2 = DllStructCreate($tagNMLISTVIEW, $lParam)
                    $iHotItem = DllStructGetData($tInfo2, 'Item')
                    $iHotSubItem = DllStructGetData($tInfo2, 'SubItem')
                  ;if $iHotSubItem>0 then
                     global $LVmenu =GUICtrlCreateContextMenu($hListView)
                     $menuFix=GUICtrlCreateMenu("fix",$LVmenu)
                     GUICtrlCreateMenuItem("$iHotSubItem "&$iHotSubItem,$menuFix)
                  ;endif

            EndSwitch

    EndSwitch
   Return $GUI_RUNDEFMSG
 EndFunc


Русское сообщество AutoIt

в контекстном меню не заменяется текст пунктов
« Отправлен: Апрель 20, 2017, 19:46:49 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
4612 Просмотров
Последний ответ Январь 26, 2010, 03:38:33
от Alexey
1 Ответов
4428 Просмотров
Последний ответ Февраль 25, 2013, 17:32:15
от rollin
3 Ответов
4627 Просмотров
Последний ответ Апрель 08, 2012, 13:31:23
от general66
16 Ответов
6720 Просмотров
Последний ответ Октябрь 17, 2010, 02:44:12
от Yashied
0 Ответов
4609 Просмотров
Последний ответ Январь 27, 2011, 08:42:56
от BVPROGS
14 Ответов
9732 Просмотров
Последний ответ Март 09, 2011, 13:59:02
от VladUs
19 Ответов
5755 Просмотров
Последний ответ Октябрь 16, 2013, 14:05:38
от Yashied
0 Ответов
991 Просмотров
Последний ответ Ноябрь 10, 2013, 22:29:54
от AlexWolf
2 Ответов
1419 Просмотров
Последний ответ Март 06, 2014, 14:40:21
от erlik
6 Ответов
496 Просмотров
Последний ответ Январь 21, 2017, 22:43:09
от kvitnitskiy