Страница: 1 |
Страница: 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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #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).