powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Sendmessage to ListView
9 сообщений из 9, страница 1 из 1
Sendmessage to ListView
    #36489135
cadrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите плиз послать сообщение в listview, например LVM_GETITEMCOUNT

нашел куски кода, там сначала идет декларация констант, связанных с этим месседжем, например

Private Const LVM_FIRST As Long = &H1000
Private Const LVM_GETITEMCOUNT As Long = (LVM_FIRST + 4)

для чего это делается и как эти значения (например &H1000) определять?

ну и для WM_GETTEXT содрал не думая, вставил в код и это работает.. а для чего что - не пойму.. что это за значение &HD и для чего оно?

Private Const WM_GETTEXT = &HD

А вот LVM_GETITEMCOUNT пока не могу заставить..
...
Рейтинг: 0 / 0
Sendmessage to ListView
    #36489498
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Const LVM_GETITEMCOUNT As Long =  4100 
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub Command1_Click()
    MsgBox SendMessage(ListView1.hWnd, LVM_GETITEMCOUNT,  0 ,  0 )
End Sub

Private Sub Form_Load()
    For x =  1  To  10 
        ListView1.ListItems.Add , , "Item " & x
    Next
End Sub
Jah loves you.
...
Рейтинг: 0 / 0
Sendmessage to ListView
    #36489765
cadrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, для своего созданного контрола работает, а для контрола чужого приложения - нет..

какие могут быть пути?

Если записать Spy-ем сообщения этого контрола, можно - ли будет использовать эту информацию?

Может это не листвью, а листбокс?

header над списком - отдельное окно

...
Рейтинг: 0 / 0
Sendmessage to ListView
    #36489836
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто скорее всего это activex control не от микрософта, возможно некоторые события в нём отстуствуют или заблокированы
...
Рейтинг: 0 / 0
Sendmessage to ListView
    #36490381
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cadrusСпасибо, для своего созданного контрола работает, а для контрола чужого приложения - нет..Это мне ни о чем не говорит. Покажите код.
...
Рейтинг: 0 / 0
Sendmessage to ListView
    #36490534
cadrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так:

Декларация Sendmessage и LVM_GETITEMCOUNT
Код: plaintext
1.
2.
3.
4.
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
   ByVal wParam As Long, lParam As Any) As Long

Const LVM_GETITEMCOUNT As Long =  4100 

Ищем окно:

Код: plaintext
1.
2.
3.
4.
5.
6.
Do Until TrimmED = "PokerStarsListClas" 'Looking for LIST HH-window
    Tmp4Hwnd = FindWindowEx(Tmp2Hwnd, Tmp4Hwnd, vbNullString, vbNullString)
    ClassTmp = GetClassName(Tmp4Hwnd, temp,  256 )
    TrimmED = Left(temp,  18 )
Loop

ListHwnd = Tmp4Hwnd

Собсно месс:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Command2_Click()

Dim HandsCount As Long

Debug.Print ListHwnd
MsgBox SendMessage(ListHwnd, LVM_GETITEMCOUNT,  0 ,  0 )

    'MsgBox SendMessage(ListView1.hwnd, LVM_GETITEMCOUNT, 0, 0)
    
End Sub

Выводит нуль
...
Рейтинг: 0 / 0
Sendmessage to ListView
    #36491666
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, прав Konst_One, ненужные сообщения блокируются.

Jah loves you.
...
Рейтинг: 0 / 0
Sendmessage to ListView
    #36492096
cadrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, стоит задача поочередно выбирать строки списка. Я думаю, что если это можно сделать мышью или перемещаться по списку клавишами вверх и вниз, то наверное можно сделать это и программно. Я начал решать эту задачу с того, что хотел определить длину списка. Может можно обойтись и без этого? Топик здесь
...
Рейтинг: 0 / 0
Sendmessage to ListView
    #36492102
cadrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy, остальные сообщения, которые Вы мне посоветовали в том топике, я еще не опробовал
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Sendmessage to ListView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]