Итак, в моей функции мэйнфрейма я создал панель инструментов, и на этой панели инструментов я хочу включить 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);
Это что-то связано с кодом, я делаю что-то не так в этих функциях? Или проблема связана с файлами ресурсов/растровыми изображениями?
Догадка: 'm_wndToolBarSelectCN.GetItemRect (3, & rect2);' возвращает недопустимый прямоугольник. Можете ли вы отлаживать и проверять, что возвращается? Кстати, почему в первом случае вы использовали индекс 0, а во втором случае вы использовали индекс 3? – cha
Вы уверены, что у вас на панели инструментов есть три элемента? – xMRi
0 и 3 являются индексами кнопок в моих файлах ресурсов. Вначале есть две кнопки 0 и 1 и две комбинированные поля 2 и 3. В целях этого вопроса я опустил две кнопки, которые работают, и забыли изменить индекс второго поля со списком. Теперь я отредактирую его – melbah