Внедрении элемента 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);
}
 
« Предыдущая статья   Следующая статья »