Внедрении элемента ComboBox в ToolBar (MFC)
|
//////////////////////////////////////////////////////////////////////// // Добавление контрола ComboBox в ToolBar // Автор статьи: cyberSpice. // e-mail:
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
// www: https://shuya.ipn.ru/~cyberSpice ////////////////////////////////////////////////////////////////////////
//===================================================================== // 1. Добавляем переменную-член в объявление класса: ... public: CComboBox m_wndCombo; ... //===================================================================== // 2. В редакторе ресурсов на контрол ToolBar наносим новую кнопку и // и устанавливаем ее ID в ID_BTN_FREEPLACE. Рисоват на ней ничего // не надо., т.к. мы будем ее использовать как место по контрол.
//===================================================================== // 3. Добавляем в следущий код в OnCreate(LPCREATESTRUCT lpCreateStruct):
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { ...
int index = 0; CRect rc;
// Определяем позицию нашей кнопки-позиции на ToolBar'е. while (m_wndToolBar.GetItemID(index) != ID_BTN_FREEPLACE) index++;
// Делаем нашу кнопку разделителем и устанавливаем ширину в 120. m_wndToolBar.SetButtonInfo(index, ID_BTN_FREEPLACE, TBBS_SEPARATOR, 120); // Получаем размеры этого, теперь уже, разделителя. m_wndToolBar.GetItemRect(index, &rc);
// Корректируем размеры в расчете на будущий контрол ComboBox. rc.top += 2; rc.bottom += 200;
// Создаем желаемый контрол на ToolBar'е DWORD dwStyle = WS_VISIBLE | WS_CHILD | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS; if (!m_wndCombo.Create(dwStyle, rc, &m_wndToolBar, 1011)) { TRACE0("Failed to create combo-box\n"); return FALSE; }
// Добавляем элементы данных в наш контрол. m_wndCombo.AddString("cyberSpice"); m_wndCombo.AddString("Ozzy Osbourne");
// Делаем первый элемент выбранным. m_wndCombo.SetCurSel(0); } |