| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > CComboBox, CBN_SELCHANGE |
| Автор: lv151 2.4.2009, 17:25 |
| Есть комбобокс с которым я работаю через DDX_CBString(......, str). Сделал обработчик для CBN_SELCHANGE. В зависимости от выбранного значения построена логика. Проблема в том, что для того, чтобы в переменную str "занеслось" выбранное значение, его надо выбрать 2 раза. Как-будто UpdateData не отрабатывает. VC6 |
| Автор: Albor 2.4.2009, 17:57 |
| Посмотри внимательнее на сообщения, должно быть ещё CBN_SELCHANGING ( если правильно написал). Одно из них вызывается перед тем как элемент выбирается, другое после. Из-за того, что используешь сообщение возникающее до выбора приходится щёлкать 2 раза. |
| Автор: lv151 2.4.2009, 18:52 |
| У меня только CBN_SELCHANGE. |
| Автор: Earnest 3.4.2009, 08:52 |
| В момент CBN_SELCHANGE строка в поле еще старая. Обработка этого уведомления предполагает получение индекса текущего элемента (CBIndex). Но вызывать UpdateData по каждому плевку неразумно: CBN_SELCHANGE приходит и тогда, когда ты просто возишь мышкой по списку, еще ничего не выбрав. По-хорошему, UpdateData нужно вызывать только в какие-то важные моменты, когда пересчитать нужно действительно почти все. А в обработчике SELCHANGE - просто спроси текущий индекс и сделай, что там тебе надо. |
| Автор: lv151 3.4.2009, 20:21 |
| Спасибо. |