Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6, считать и установить флажок Check у итема в ListView / 20 сообщений из 20, страница 1 из 1
27.08.2007, 13:23
    #34754488
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
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
27.08.2007, 13:35
    #34754568
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
ну до кучи еще одно определение
Код: 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
27.08.2007, 14:06
    #34754734
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
а св-во 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
27.08.2007, 14:57
    #34755035
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
автора св-во 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
27.08.2007, 15:00
    #34755054
NSfuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
чорт ... поравлю сцылки
SetWindowLong: Add TreeView Check Boxes via API
и Piva
...
Рейтинг: 0 / 0
27.08.2007, 15:01
    #34755059
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
Осмелюсь проиллюстрировать ответ HandKot:

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

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

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

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

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


Да
...
Рейтинг: 0 / 0
27.08.2007, 15:44
    #34755275
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
чорт ... эта финиш ... а интересна занть зачаем вот хотя бы эти горы кода по сцылке которую я давал выше ... там в начале читаем
автор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
27.08.2007, 15:44
    #34755277
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
авторкороче, нет этих свойств ни у самого объекта Listview ни у итемов

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

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
27.08.2007, 15:45
    #34755282
NSFuimus1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
может версии MSComCtl разные? ну в любом случае я работаю на том что дают
...
Рейтинг: 0 / 0
27.08.2007, 15:45
    #34755283
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
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
27.08.2007, 17:12
    #34755765
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6, считать и установить флажок Check у итема в ListView
может это поможет


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


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