| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Extended Combo Box в ReBar |
| Автор: AndrRus 4.4.2008, 21:07 | ||
| Решил добавить на Rebar - Extended Combo Box, когда создавал в диалоговом окне, то все нормально было, пользовательскую функцию для загрузки иконок и список имен вызывал в OnInitDialog () - и все работало прекрасно. Стоило мне попробовать сделать все тоже самое, но только на Rebar панели, программа ругается (не компилятор). Где бы не пытался вызвать функцию в методах класса View - везде одна и таже проблема. Вот собственно код:
Помогите разобраться с проблемой. |
| Автор: korian 4.4.2008, 21:37 |
| я так понимаю m_wndReBar это CReBar CComboBoxEx* pCombo = (CComboBoxEx*) pFrame->m_wndReBar.GetDlgItem (IDC_COMBOBOXEX2_COLOR); ASSERT(pCombo != NULL);//!!!!!!!! комбо бокс находится не на ребаре, а на чилд диалоге |
| Автор: AndrRus 4.4.2008, 23:43 | ||||
Да, именно так.
Проблему это все равно не решило... Вот код всей функции:
|
| Автор: korian 5.4.2008, 00:03 |
| основная мысль была тут: ASSERT (pCombo != NULL); - это я хотел показать, что pCombo у вас равен нулю. Если pCombo не равен нулю, то это достаточно странно. не знаю как вы добавляете бары на ребар... поидее у вас в MainFrame должна быть переменная, которая является объектом подкласса CDialog. это переменную, вы указываете, когда используете m_wndRebar.AddBar(&m_bar); может конечно вы добавляете туда ребары так: m_wndRebar.AddBar(new SomeClass); что вообщем-то зря, т.к. как это потом удалить... короче, проблема тут: CComboBoxEx* pCombo = (CComboBoxEx*) pFrame->m_wndReBar.GetDlgItem (IDC_COMBOBOXEX2_COLOR); CComboBoxEx* pCombo = (CComboBoxEx*) pFrame->m_bar.GetDlgItem (IDC_COMBOBOXEX2_COLOR); |
| Автор: AndrRus 5.4.2008, 10:41 | ||
korian,
Решение проблемы оказалось куда более простым, чем я думал |