Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
HRACH

Как можно добавлять новый пункт в List View, имея только Handle.

07.11.2010, 18:52. Показов 1341. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно добавлять новый пункт в List View, имея только Handle.

Этот команда удаляет элемент из ListView
Visual Basic
1
 WW = SendMessage(hvnd_ListView, LVM_DELETEITEM, ByVal 0, ByVal 0 )
‘А этот код не добовляет элемент(“C:1.wav”) в ListView
'Подскажи пожалуста где я ошибся.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Type LV_ITEM
  mask      As Long   ' маска использования полей структуры LV_ITEM
    iItem              As Long      '   номер элемента
  iSubItem   As Long  'номер дополнительного элемента
    State             As Long      '   текущее состояние элемента
    stateMask     As Long      'маска состояния элемента
    pszText         As String     ' адрес текстового буфера
    cchTextMax  As Long     ' размер текстового буфера
    iImage          As Long      'номер пиктограммы элемента
    lParam          As Long      ' 32-битовое значение, связанное с элементом
    iIndent         As Long       
End Type
   Dim WW
  Dim TEXT As String
   Dim LISTV As LV_ITEM   'Structura LV_ITEM
   TEXT = String$(256, " ")
   TEXT = "C:\1.wav"
   LISTV.iItem = 1
   LISTV.iSubItem =0
   LISTV.pszText = TEXT
   LISTV.cchTextMax = 8
   WW = SendMessage(hvnd_ListView, LVM_INSERTITEM, ByVal 0, LISTV)
Всегда WW= -1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.11.2010, 18:52
Ответы с готовыми решениями:

Как добавить новый пункт в List View имея только Handle?
Каким можно добавить новый пункт в List View имея только Handle

Как в list box добавлять только названия файлов
procedure TForm1.Button2Click(Sender: TObject); var j: integer; begin if lst1.Count<>0 then //проверяем если PlayList не пустой то...

Как установить Windows 7 PRO на новый комп, имея только .iso-дистрибутив?
Есть новый комп. Есть .iso-образ W 7 prof. Есть законно полученный ключ к продукту. Объясните тупому подробно последовательность шагов...

4
1 / 1 / 2
Регистрация: 13.05.2009
Сообщений: 65
09.11.2010, 12:33
А столбцы у тебя созданы?
0
Comanche
09.11.2010, 18:01
А hvnd_ListView определяет хэндл какого листвью? 'своего' или же расположенного на окне 'чужого' приложения?!
HRACH
10.11.2010, 15:11
Столбцы я не создал.
hvnd_ListView определяет хэндл другово('чужого') приложения.
ListView имет 4 столбец.

У меня 2 вопросы:

1. Код отдельно работает,но когда я хочу из моей
программы добавить элемент ListView
другово программу, то не работает.

2. Если циклическии добовляю или удаляю элементи то
программа дает Application Error.

У меня ничего не получается. Помогите!

Вот код программы:
Visual Basic
1
2
3
4
5
6
7
8
9
Option Explicit
 
Private Sub Form_Load()
Dim LVI As LV_ITEM
Dim lResalt As Long
    LVI.mask = LVIF_TEXT
    LVI.pszText = "Новый элемент"
    lResalt = SendMessage(ByVal Me.lvwTest.hWnd, ByVal LVM_INSERTITEM&, ByVal 0&, LVI)
End Sub
Module1:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Option Explicit
 
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
 
' структура LV_ITEM
Public Type LV_ITEM
    mask As Long
    iItem As Long
    iSubItem As Long
    state As Long
    stateMask As Long
    pszText As String
    cchTextMax As Long
    iImage As Long
    lParam As Long
    iIndent As Long
End Type
 
' константы для LV_ITEM.Mask
Public Const LVIF_TEXT        As Long = &H1
Public Const LVIF_IMAGE       As Long = &H2
Public Const LVIF_PARAM       As Long = &H4
Public Const LVIF_STATE       As Long = &H8
Public Const LVIF_INDENT      As Long = &H10
Public Const LVIF_NORECOMPUTE As Long = &H800
 
' сообщения для ListView
Public Const LVM_FIRST      As Long = &H1000              '// ListView messages
Public Const LVM_INSERTITEM As Long = (LVM_FIRST + 7)
Comanche
10.11.2010, 15:41
Раз листвью относится к 'чужому' приложению, то дело в памяти: смотри http://www.relib.com/forums/topic.asp?id=804336, самый первый ответ (автор - Messir).

Тебе придётся 'лезть' в адресное пространство 'чужого' процесса с помощью API VirtualAllocEx, что кстати сделает твою программу совместимой только с NT-подобными ОС.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2010, 15:41
Помогаю со студенческими работами здесь

Как можно нарисовать схему логических переключателей имея только программу?
Можно вопрос как можно нарисовать схему логических переключателей имея только программу ???вот программа ,подскажите пожалуйста если знаете...

Можно ли добавлять в List по id?
Можно ли создавать новые объекты List по id, как с помощью массивов? Ну т.е. в массиве можно вот так: Massiv = "Massiv"; ...

Как получить ThreadID имея его HANDLE в WinXP ?
В более современных виндах делается элементарно - GetThreadId , а в древнем XP как быть ? :) Добавлено через 2 минуты Да, забыл...

Tree View + List View. Как из програмы определить в чем именно на данный момент выделен елемент ?
У меня на одной форме радом сидят Tree View и List View (как в explore). Вопрос: как из програмы определить в чем именно (в Tree View или в...

Можно ли восстановить программу, имея только код
Задаюсь вопросом, есть ли возможность восстановить программу на Delphi, имея в наличии только ее код. Если да - то нужно ли использовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru