На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Как получить значения элементов SysListView32 , посредством функции sendmessage
    Доброго времени суток. Помогите пожалуйста разобраться в использовании сообщений. Как ни пытаюсь, а получить текст Item'ов или SubItem'ов не получается. Получается только количество Item'ов.

    ExpandedWrap disabled
      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
       
      Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
       
      Const LVM_GETITEMCOUNT As Long = &H1004
      Const LVM_GETITEMTEXT  As Long = &H102D
       
      Public Function GetListViewItems(ByVal hwnd As Long) As String
         Dim lCount As Long, lIndex As Long
         Dim sItem As Long, lLen As Long, q As Long, soobw As String
         Dim LVI As LV_ITEM
        
          lCount = SendMessage(hwnd, LVM_GETITEMCOUNT, ByVal 0&, ByVal 0&)
      For lIndex = 0 To lCount - 1
          LVI.cchTextMax = 260
          LVI.pszText = String$(LVI.cchTextMax, 0&)
          LVI.iSubItem = 0
         Call SendMessage(hwnd, LVM_GETITEMTEXT, ByVal lIndex, ByVal VarPtr(LVI))
         soobw = soobw & Trim(LVI.pszText) & vbCrLf
         Stop
      Next lIndex
         GetListViewItems = soobw
      End Function


    При попытке получить перечень обоев с окна "Свойства экрана", окно вылетает с Run32 error, а при попытке получения перечня файлов в окне вида "таблица" вылетает Explorer. Проект целиком в архиве. Буду признателен за помощь.

    Прикреплённый файлПрикреплённый файлproekt.zip (23,21 Кбайт, скачиваний: 167)
        Цитата __Sergey__ @

        Зашибись как все сложно. Но зато работает. Спасибо, а то замучалса уже в поисках примеров по LVM_GETITEMTEXT, которого в том примере и нет :scratch: .
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0279 ]   [ 18 queries used ]   [ Generated: 15.07.24, 11:40 GMT ]