2013-12-03 3 views
0

Итак, в моей функции мэйнфрейма я создал панель инструментов, и на этой панели инструментов я хочу включить 2 стандартных комбинированных блока: (текстовое поле, выпадающее меню, выпадающее меню). Я использую класс CComboBox. Мои панели инструментов также создаются с использованием CBCGPro.MFC ComboBox: не отображает текстовое поле

Создано первое поле со списком и отлично выглядит. Вот код:

CRect rect; 

m_wndToolBarSelectCN.SetButtonInfo(0, IDM_SHOW_SELECT_CN_TOOLBAR, TBBS_SEPARATOR, 175); 
m_wndToolBarSelectCN.GetItemRect(0, &rect); 
rect.bottom = rect.top + 200; 

sg_cbToolsbarClasses.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWN, rect, 
          &m_wndToolBarSelectCN, IDS_TOOLBAR_SELECT_CB_CLASS); 

m_wndToolBarSelectCN является панель инструментов я создал в моей функции мейнфреймов и sg_cbToolsbarClasses мой CComboBox objct.

Мой второй ComboBox прямо справа от первого, имеет выпадающее меню и выпадающую кнопку, но не текстовое поле. Также работают все его функции. Вот код:

m_wndToolBarSelectCN.SetButtonInfo(1, IDM_SHOW_SELECT_CN_TOOLBAR, TBBS_DROPDOWN, 500); 
m_wndToolBarSelectCN.GetItemRect(1, &rect2); 
rect2.bottom = rect2.top + 200; 
sg_cbToolsbarNodes.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWN, rect2, 
          &m_wndToolBarSelectCN, IDS_TOOLBAR_SELECT_CB_NODE); 

Это что-то связано с кодом, я делаю что-то не так в этих функциях? Или проблема связана с файлами ресурсов/растровыми изображениями?

+0

Догадка: 'm_wndToolBarSelectCN.GetItemRect (3, & rect2);' возвращает недопустимый прямоугольник. Можете ли вы отлаживать и проверять, что возвращается? Кстати, почему в первом случае вы использовали индекс 0, а во втором случае вы использовали индекс 3? – cha

+0

Вы уверены, что у вас на панели инструментов есть три элемента? – xMRi

+0

0 и 3 являются индексами кнопок в моих файлах ресурсов. Вначале есть две кнопки 0 и 1 и две комбинированные поля 2 и 3. В целях этого вопроса я опустил две кнопки, которые работают, и забыли изменить индекс второго поля со списком. Теперь я отредактирую его – melbah

ответ

0

Решено. Мне просто нужны разделители между моими списками. Первый показался хорошо, потому что ничего не осталось. Второй текстовый ящик покрывался (перекрывался) первым.

Смежные вопросы