| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Как получить индекс строки, выбранной в Combobox |
| Автор: Alexander777 7.2.2007, 21:36 | ||
Я вывожу диалоговое окно с Combobox, чтобы пользователь сделал выбор из списка. Как получить индекс выбранной строки? В приведённом мной коде отладчик выдаёт сообщение Debug Assertion Failed!
|
| Автор: Nuzur 8.2.2007, 12:40 |
| Alexander777, в каком месте именно Debug Assertion Failed!? При создании диолога при попытке получить выбранную строку? Anikmar, возможно и так если дилог был уничтожен, или уничтожен его ComboBox. Но тогда должно было появиться access violation скорее чем Debug Assertion Failed. Скорее всего проблема в диалоге который вы вызываете. |
| Автор: zkv 8.2.2007, 13:47 | ||||
я думаю речь шла о таком случае
но это просто не откомпилится а по существу вопроса - надо запоминать выделенную строку в классе диалога, например в в какой нить мембер перед завершением диалога, а потом оттуда извлекать после завершения. |
| Автор: Earnest 8.2.2007, 19:53 |
| Безусловно, дело в этом: Комбобокс уже приказал долго жить, вместе с окном диалога. ASSERT идет из MFC, которая проверяет, что окно существует. Никакого Violation не будет, т.к. SendMessage просто посылает на деревню дедушке, и к падению это не приводит. Как сказал zkv, нужно запоминать выбор в простой (не оконной) переменной перед закрытием диалога. Например, вставить DDX_CBIndex в DoDataExchange. |
| Автор: Anikmar 8.2.2007, 19:57 | ||||
Нет, я думал о таком случае (он бы скомпилился)
Но это было чисто предположение - уже вижу, что не то. |