Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: чекбоксы в OpenDialog Добавлено: 03.05.05 05:47  

Автор вопроса:  Lister | ICQ: 298621256 
Пытаюсь изменить диалог открытия файла - нужно в его ListBox'е отображать чекбоксы для выбора нескольких файлов.
Я нахожу hWnd этого ListBox'а по имени класса, затем пытаюсь изменить его ExtendedStyle - добавляю LVS_EX_CHECKBOXES:

               lRetval=SendMessage(hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_CHECKBOXES, ByVal 0&)

Чекбоксы не появляются...

Я делаю что-то неверно, или это вовсе невозможно сделать?

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 03.05.05 07:04
Ты когда-нибудь видел чекбоксы в commondialog?
Обрати лучше внимание на флаг
OFN_ALLOWMULTISELECT.

Ответить

Номер ответа: 2
Автор ответа:
 Lister



ICQ: 298621256 

Вопросов: 57
Ответов: 304
 Профиль | | #2 Добавлено: 03.05.05 07:11
Мультиселлект и чекбоксы - большая разница. Я спрашивал про второе...

Ответить

Номер ответа: 3
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #3
Добавлено: 03.05.05 07:18
может ты имеешь в виду чекбоксы в окне-дереве выбора ПАПОК?

Ответить

Номер ответа: 4
Автор ответа:
 Lister



ICQ: 298621256 

Вопросов: 57
Ответов: 304
 Профиль | | #4 Добавлено: 03.05.05 07:50
Я имею ввиду стандартное окно открытия файла(ов), но мне нужно вместо использования мультиселлекта использовать чекбоксы, которые, по идее, можно отобразить в этом окне, т.к. хендл окна известен...

Ответить

Номер ответа: 5
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #5 Добавлено: 03.05.05 10:41
Проще сделать свой диалог открытия и сохранения. И можно там и чекбоксы и радиобутоны и пр. вставить.

Ответить

Номер ответа: 6
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #6
Добавлено: 03.05.05 13:23
 MSDN:

Extended list view styles

List view control styles have been extended. To use these new styles, use the LVM_SETEXTENDEDLISTVIEWSTYLE message or one of the ListView_SetExtendedListViewStyle or ListView_SetExtendedListViewStyleEx macros.

LVS_EX_CHECKBOXES
Version 4.70. Enables check boxes for items in a list view control. Effectively, when set to this style, the control will create and set a state image list usingDrawFrameControl. Check boxes are visible and functional with all list view modes. The state of the check box for a given item is obtained using the ListView_GetCheckState macro.
Note: To set the state of the item checkbox, use the following macro.

#ifndef ListView_SetCheckState
   #define ListView_SetCheckState(hwndLV, i, fCheck) \
      ListView_SetItemState(hwndLV, i, \
      INDEXTOSTATEIMAGEMASK((fCheck)+1), LVIS_STATEIMAGEMASK)
#endif

Ответить

Номер ответа: 7
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #7 Добавлено: 04.05.05 09:51
Проще сделать свой диалог открытия и сохранения. И можно там и
чекбоксы и радиобутоны и пр. вставить.

Только мароки больше ;) Лучше сабкласснуть разочек и радоваться жизни
дальше :)

Ответить

Номер ответа: 8
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #8 Добавлено: 04.05.05 12:00
Есть пример "сабкласснения разочек" ? Чтобы чекбокс появился? Поделись с Lister'ом :)

Ответить

Номер ответа: 9
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #9
Добавлено: 04.05.05 12:22
Хм, не заметил что ты так и делаешь :)
А диалог VB-шный или на API?

Ответить

Номер ответа: 10
Автор ответа:
 Lister



ICQ: 298621256 

Вопросов: 57
Ответов: 304
 Профиль | | #10 Добавлено: 04.05.05 12:40
CyRax, диалог на API

Я в свое время развивал тему по сабклассингу коммондиалогов, помнишь, с иземенением тулбара...

Ответить

Номер ответа: 11
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #11
Добавлено: 04.05.05 13:15
 Могут быть варианты.
1. Используется старый ListView (ниже 4.70)
2. Оконная процедура диалога или самого ListView глушит либо стиль LVS_EX_CHECKBOXES либо сообщение LVM_SETEXTENDEDLISTVIEWSTYLE.

Ответить

Номер ответа: 12
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #12 Добавлено: 04.05.05 16:38
2CyRax:
Вариант 2 - верный: LVM_SETEXTENDEDLISTVIEWSTYLE действительно не пашет с VB-шным листвью. По крайней мере - с большинством расширенных стилей.

2Lister:
Посмотри http://formtoini.narod.ru/Downloads/Improved_ListView.zip - м.б. пригодится... там как раз навалом custom draw листвью, одной из причин чему была именно блокировка расширенных стилей. Думаю, в момент "item pre-paint" ты вполне можешь делать отрисовку чекбокса при помощи DrawFrameControl (.uType = DFC_BUTTON и .uState = DFCS_BUTTONCHECK).

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам