powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6, считать и установить флажок Check у итема в ListView
20 сообщений из 20, страница 1 из 1
VB6, считать и установить флажок Check у итема в ListView
    #34754488
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hi ALL
Пытаюсь сделать так:
Код: plaintext
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.
30.
31.
32.
...
Public Const LVM_FIRST = &H1000
Public Const LVM_SETITEMSTATE = LVM_FIRST +  43 
Public Const LVM_GETITEMSTATE = LVM_FIRST +  44 
Public Const LVIS_STATEIMAGEMASK = &HF    '0xF000
Type LVITEM
    mask        As Long
    iItem       As Integer
    iSubItem    As Integer
    state       As Long
    StateMask   As Long
    pszText     As String
    cchTextMax  As Integer
    iImage      As Integer
    lParam      As Long
    iIndent     As Integer
    iGroupId    As Integer
    cColumns    As Long
    puColumns   As Long
End Type
...
Public Function LVSetItemCheck(ListView As Object, nItem As Integer, ByVal NewVal As Boolean) As Boolean
    LVSetItemCheck = LVSetItemState(ListView, nItem, IIf(NewVal,  8192 ,  4096 ), LVIS_STATEIMAGEMASK)
End Function

Public Function LVSetItemState(ListView As Object, nItem As Integer, ByVal NewVal As Integer, nMask As Long) As Boolean
   Dim nLvItem As LVITEM
'   nLvItem.iItem = nItem
   nLvItem.StateMask = nMask
   nLvItem.state = NewVal
   LVSetItemState = CBool(SendMessage(ListView.hWnd, LVM_SETITEMSTATE, nItem, nLvItem))
End Function
нихрена не получается ... каг сделать правильна?
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34754568
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну до кучи еще одно определение
Код: plaintext
1.
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
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34754734
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а св-во Checkboxes не подходит?

Код: plaintext
1.
Checkboxes Property
Returns or sets a value that determines if checkboxes appear.

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755035
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автора св-во Checkboxes не подходит?
1. нету такого
2. судя по транскрипции скорее относится к ListView (те типа отображать/неотображать) - у итема скорее уж checked

переписал(дописал) так:
Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Public Function LVSetItemCheck(hwnd As Long, nItem As Integer, ByVal NewVal As Boolean) As Boolean
   Dim pItem As LV_ITEM
    With pItem
      .mask = LVIF_STATE 'забыл софсем указать сначала, а это - важно 
      .iItem = nItem
      .StateMask = LVIS_STATEIMAGEMASK
      .state = INDEXTOSTATEIMAGEMASK(Abs(NewVal) +  1 )
   End With
     
   LVSetItemCheck = ListView_SetItem(hwnd, pItem)
   
'
'   nLvItem.mask = LVIF_STATE
'   nLvItem.iItem = nItem
'   nLvItem.StateMask = nMask
'   nLvItem.state = NewVal
'   LVSetItemCheck = LVSetItemState(ListView, nItem, INDEXTOSTATEIMAGEMASK(Abs(NewVal) + 1), LVIS_STATEIMAGEMASK)
End Function
Public Function ListView_SetItem(hwnd As Long, pItem As LV_ITEM) As Boolean

  'Sets some or all of a tree-view item's
  'attributes. Old docs say returns zero if
  'successful or - 1 otherwise.
  'New docs say returns TRUE if successful,
  'or FALSE otherwise!
   
   ListView_SetItem = SendMessage(hwnd, LVM_SETITEM,  0 &, pItem)
  
End Function
Public Function INDEXTOSTATEIMAGEMASK(iState As Long) As Long

  'Prepares the index of a state image so that a
  'treeview control or listview control can use the
  'index to retrieve the state image for an item.
  'Returns the one-based index of the state image
  'shifted left twelve bits. A common control
  'utility macro.
  'This macro is defined in Commctrl.h as:
  '#define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)
  
   INDEXTOSTATEIMAGEMASK = iState * ( 2  ^  12 )

End Function
последни вариант навеян http://%5Dhttp://vbnet.mvps.org/index.html?code/comctl/tvcheckbox.htm%5B/url] спасибо Pive (http://]http://forum.foxclub.ru/profile.php?29,849 ) один хрен - не выставляется флажок
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755054
NSfuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чорт ... поравлю сцылки
SetWindowLong: Add TreeView Check Boxes via API
и Piva
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755059
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Осмелюсь проиллюстрировать ответ HandKot:

lvwMyListView.Checkboxes = True
lvwMyListView.ListItems(2).Checked = True

Там лучше сказать не итем, а айтем, если желаете по аглицки...
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755072
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NSfuimus1чорт ... поравлю сцылки
SetWindowLong: Add TreeView Check Boxes via API
и Piva

??? А это все на каком языке? Я имею ввиду то, что набрано кириллицей...
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755089
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и то и другое ругается при компиляции
VB6, компонент ListView со стандартной панели Toolbox
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755126
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NSFuimus1и то и другое ругается при компиляции
VB6, компонент ListView со стандартной панели Toolbox

Что и то и другое? Использование стандартных свойств ругается??? У меня не ругается. Все чек боксы на месте и и флажки программно устанавливаются и никаких АПИ...
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755186
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MS Visual Studio 6.0?
где здесь Checkboxes
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755203
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чорт ... ссылаться на файлы запрещено ... короче, нет этих свойств ни у самого объекта Listview ни у итемов
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755250
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NSFuimus1чорт ... ссылаться на файлы запрещено ... короче, нет этих свойств ни у самого объекта Listview ни у итемов

Последнее утверждение ложно.
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755257
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NSFuimus1MS Visual Studio 6.0?
где здесь Checkboxes


Да
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755275
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чорт ... эта финиш ... а интересна занть зачаем вот хотя бы эти горы кода по сцылке которую я давал выше ... там в начале читаем
авторThis method is intended for Visual Basic 5 or Visual Basic 6 where the Common Control library used is the MSComCtl 5 version (comctl32.ocx)
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755277
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкороче, нет этих свойств ни у самого объекта Listview ни у итемов

а версия контрола какая?
работаете в Басике?

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755282
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может версии MSComCtl разные? ну в любом случае я работаю на том что дают
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755283
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NSFuimus1чорт ... эта финиш ... а интересна занть зачаем вот хотя бы эти горы кода по сцылке которую я давал выше ... там в начале читаем
авторThis method is intended for Visual Basic 5 or Visual Basic 6 where the Common Control library used is the MSComCtl 5 version (comctl32.ocx)

так поменяйте контролы на более новые и не мучайтесь

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34755765
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может это поможет


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34756707
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, не получилось ... каг и ожидал, на предложение поменять версию библиотеки получил отказ - говорят пусть будет дополнительный столбец и из контекстного меню выставлят/снимать в нем значок ... млин извращение
...
Рейтинг: 0 / 0
VB6, считать и установить флажок Check у итема в ListView
    #34756728
NSFuimus1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чорт ... ступил ... работает ... и последний код и фсе предыдущие ... млин я не тот индекс для итема передавал на тестовом примере - вбил в голову правило после того каг посадили на VB с С++: "порядковый номер начинается с 1, а не 0" вот и попал ... фсем спасибо
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6, считать и установить флажок Check у итема в ListView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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