C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 21. Продолжаем работать с CComboBox / Уроки MFC / Visual C++

Visual C++. MFC
Урок 21. Продолжаем работать с CComboBox

Для начала давайте передадим некоторое значение из нашего ComboBox'а в главное окно программы. Переданное значение появится в заголовке главного окна. Для этого внесите в обработчик меню (того самого, при вызове которого появляется наш диалог) следующие изменения:

void CMyMainWnd::OnMyMenuDialog(){
    CDlg dlg;
    dlg.m_sName=m_sName;
    if(dlg.DoModal()==IDCANCEL) //если нажали на cancel,
        return;                 //то выходим
    m_sName=dlg.m_sName;
    SetWindowText(m_sName);
}

Теперь осталось только добавить в класс CMyMainWnd переменную m_sName типа CString:

public:
    CString m_sName;
    ...

Теперь при запуске программы выбранное нами значение из ComboBox'а будет появляться в заголовке нашего окна:

<Окно с заголовком

Рассмотрим теперь операции с элементами ComboBox'а. Основные из них - это добавление в конец списка (AddString, рассмотрена на прошлом уроке), вставки (InsertString), удаления (DeleteString) и нахождения нужной строки (FindString). Их использование ясно из следующего примера:

BOOL CDlg::OnInitDialog() 
{
    ...
    m_cbComboBox.AddString("Ушку");
    //вставка строки на первое место (нумерация с нуля!)
    m_cbComboBox.InsertString(1,"Новая строка");
    //удаление строки номер ноль (нумерация с нуля!)
    m_cbComboBox.DeleteString(0);
    //ищем строку Victor
    //Если она есть, то ее номер запишется в k
    int k=m_cbComboBox.FindString(0, "Victor");
    if(k==CB_ERR)   //Если такой строки нет, то k будет равно CB_ERR
        AfxMessageBox("Сторока не найдена!");
    else{
        CString s;
        s.Format("Строка найдена на %d-м месте.",k);
        AfxMessageBox(s);
    }
    ...
}

Из важных функций стоит ещё, пожалуй, упомянуть ResetContent, которая служит для удаления из ComboBox'а всех его элементов. Пример ее использования:

...
m_cbComboBox.ResetContent();
...