![]() |
|
|
![]()
|
|
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Имеется ССomboBox.
при добавлеии в него элементов "по-простому" типа AddString()строки нумеруются в порядке добавления. (сортировка естественно отключна). И по GetCurSel и SetCurSel мы определяем/задаем номер текущей выбранной/выбираемой строки. Можно ли создать "Дырявый" комбобокс, чтобы номера строк в нем были к примеру {0,2,3,5,6,8} ? И по GetCurSel чтобы возвращались эти числа? -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Дружище, ты начинаешь меня пугать Да, забыл ответить: но вопросом на вопрос- можно ли сделать "дырявый" массив? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Dreamer_0x01 |
|
||||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
Объясняю.
В зависимости от разных ситуаций в программе мне надо сделать недоступным выбор некоторых пунктов. Задизейблить строку нельзя. Поэтому приходится каждый раз удалять/добавлять строки, причем чтобы нумерация была в нужном мне порядке, приходится сначала все удалить, а потом нужное мне снова добавить. То есть у меня имеется массив данных МОЯ_СТРУКТУРА М[N]; В зависимости от ситуации мне ладо отображать в комбобоксе только определенные элементы в этой структуре, то есть не все. И в эти моменты мне приходится вствлять такие вещи:
Но это еще ладно, но в случае обработки события выбора списка вычислять элемент, которому принадлежит строка, приходится так:
Работает, но вот если бы можно было индексировать строки в Комбобоксе, либо делать "дырки" в номерах при создании - было бы гораздо проще -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Dreamer_0x01
Нормальный подход.. Но я б лучше делал список недоступных строк, а потом проверял при выборе ... Единственное, чтоб сделал я еще для пользователя-так это маркировку недоступности-это осуществляется перерисовкой Комбобокса, либо подстановкой картинок(галочка для МОЖНО и крестик для НЕЛЬЗЯ) для СomboBoxEx Добавлено @ 10:58
itemState - состояние после перерисовки: ODS_CHECKED - Выбран ODS_DISABLED - Запрещен к выбору. ODS_FOCUS - Имеет фокус ODS_GRAYED - Элемент недоступен ODS_SELECTED - Элемент выбран ODS_DEFAULT - Элемент по умолчанию Вот то ,что тебе надо, возможно , что даже и отработает на недоступность -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
О, спасибочки. Щас займусь.
А недоступность выбора визуально как-то будет отражена? Либо все-таки придется крестики-галочки-фиг знает что лепить? Тогда вопрос - ведь крестик я так понимаю в родителях CWnd имеет? Может свой Паинт для этого CWnd определить можно и там самому что-то нарисовать? (Например, БитМэп влепить) -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Dreamer_0x01 Не дури... Для ComboBoxEx есть список изображений, у тебя будет всего два изображения( крестик и галочка). Если надо-помогу.. Для ComboBox с перерисовкой нужно создать свой класс, производный отComboBox, и внем переопределить виртуалную функцию DrawItem() Короче делай, не получится помогу
Думаю, что да ,никогда просто недоступность не делал Это сообщение отредактировал(а) Coocky - 14.9.2005, 11:41 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
||||
|
|||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: 9 Всего: 12 |
А еще тогда вопрос, ComboBoxEx - насколько "стандартный" контрол...Ну то есть опять я со своей проблемой - а будет ли он корректно работать под Windows95 ?
-------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Судя по МСДН-все ОК!
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |