Автор Тема: Как отловить клик по заголовку ListView в режиме OnEvent?  (Прочитано 2562 раз)

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

Оффлайн Vovsla [?]

  • Осваивающий
  • **
  • Сообщений: 462
  • Репутация: 24
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
На форуме нашел пример с ListView с кликом по заголовку, но в режиме OnEvent он не работает.
Еще интересует как получить столбец по которому кликнули и режим сортировки, а так же как менять стрелку указывающую на метод сортировки в GUI, т.к. сортировка будет не с помощью ListView а при помощи другой функции.

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

Как отловить клик по заголовку ListView в режиме OnEvent?
« Отправлен: Сентябрь 17, 2011, 21:58:20 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7788
  • Репутация: 2278
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Vovsla  [?]
Цитировать
На форуме нашел пример с ListView с кликом по заголовку, но в режиме OnEvent он не работает.
В таком случае не помешала бы как минимум ссылка на этот пример.

Вот всё работает:

Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>
#include <GUIListView.au3>
#include <WindowsConstants.au3>

Opt("GUIOnEventMode", 1)

GUICreate("ListView Column Click", 400, 300)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Quit")

$hListView = GUICtrlCreateListView("Col1|Col2", 2, 2, 394, 268)

GUISetState()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

While 1
    Sleep(100)
WEnd

Func _Quit()
    GUIDelete()
    Exit
EndFunc

Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $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_COLUMNCLICK ; A column was clicked
                    Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
                    ConsoleWrite("Column Clicked, SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF)
            EndSwitch
    EndSwitch
   
    Return $GUI_RUNDEFMSG
EndFunc



Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Оффлайн Vovsla [?]

  • Осваивающий
  • **
  • Сообщений: 462

  • Автор темы
  • Репутация: 24
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Большое спасибо. Но как получить направление сортировки?

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7788
  • Репутация: 2278
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Vovsla  [?]
Цитировать
Но как получить направление сортировки?
Это уже другой вопрос.

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

Re: Как отловить клик по заголовку ListView в режиме OnEvent?
« Ответ #3 Отправлен: Сентябрь 18, 2011, 15:25:23 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
2670 Просмотров
Последний ответ Ноябрь 07, 2009, 12:27:01
от Kaster
3 Ответов
3148 Просмотров
Последний ответ Март 04, 2010, 16:04:02
от gregaz
4 Ответов
5342 Просмотров
Последний ответ Июль 07, 2010, 14:18:34
от XpycT
5 Ответов
5013 Просмотров
Последний ответ Август 16, 2010, 20:53:06
от XpycT
2 Ответов
2283 Просмотров
Последний ответ Апрель 02, 2011, 22:24:21
от tigerby
2 Ответов
1754 Просмотров
Последний ответ Июль 20, 2012, 23:16:30
от n-deer
11 Ответов
2021 Просмотров
Последний ответ Январь 06, 2015, 10:13:26
от gregaz
4 Ответов
905 Просмотров
Последний ответ Январь 27, 2015, 20:44:55
от FADY
40 Ответов
3204 Просмотров
Последний ответ Январь 21, 2017, 17:08:30
от VadimKHL
10 Ответов
1181 Просмотров
Последний ответ Январь 12, 2017, 14:53:19
от F9